Besplatna biblioteka za pristup MS SQL Serveru

Besplatna biblioteka za pristup MS SQL Serveru

offline
  • cuoea 
  • Novi MyCity građanin
  • Pridružio: 12 Apr 2005
  • Poruke: 6

Pozdrav svima.

Zna li neko za biblioteku koja implementira pristup MS Sql Serveru, a da nije ODBC zasnovana.

Probao sam ADO kroz objekte iz C++ Buildera, ali se ne ponasaju lepo u multi-threaded okruzenju (pretpostavljam zbog cele sarade sa VCL-om).

Ako nista drugo, uvek mogu da koristim izvorne ADO objekte, ali nisam bas odusevljen tom idejom. BCB ima prilicno problema sa #import naredbom.

Sve primedbe su dobrodosle:)



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

a da koristis ADO u CriticalSection?
onda ne moze da brlja...



offline
  • cuoea 
  • Novi MyCity građanin
  • Pridružio: 12 Apr 2005
  • Poruke: 6

Hvala na savetu. Ipak mi nije potrebna niti implementacija kriticnih sekcija, niti druga biblioteka.

Tvoj savet me je naveo da jos jednom pogledam kako sam zapravo koristio originalne objekte, i onda sam video da nisam probao drugi nacin upotrebe interfejsa koji mi je dat (a bio sam ubedjen da sam to vec uradio i da nije 'telo).

U svakom slucaju, puno ti hvala na "okidacu".

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

a tu nije nikakva posebna implementacija potrebna, svega 4 funkcije uvodis za CS - registrovanje/odregistrovanje CS-a, i ulaz/izlaz u CS...

evo ti moja gotova portabilna klasa:

   critical_section :: critical_section ()    {       this->init (NULL);       entered=0;    }    critical_section :: ~critical_section ()    {       this->destroy ();    }    int critical_section :: init (void *mutexattr)    {       #ifdef _WIN32          InitializeCriticalSection(&cs);          return 1;       #else          if ( pthread_mutex_init(&cs, (const pthread_mutexattr_t *)mutexattr) == 0)             return 1;          else             return 0;       #endif    }    int critical_section :: destroy ()    {       #ifdef _WIN32          DeleteCriticalSection(&cs);          return 1;       #else          if ( pthread_mutex_destroy(&cs) == 0)             return 1;          else             return 0;       #endif    }    int critical_section :: try_enter ()    {       #ifdef _WIN32          if (TryEnterCriticalSection(&cs)!=0)          {             entered=1;             return 1;          }          else             return 0;       #else          if (pthread_mutex_trylock(&cs) == 0)          {             entered=1;             return 1;          }          else             return 0;       #endif    }    int critical_section :: enter ()    {       #ifdef _WIN32          EnterCriticalSection(&cs);          entered=1;          return 1;       #else          if (pthread_mutex_lock(&cs) == 0)          {             entered=1;             return 1;          }          else             return 0;       #endif    }    int critical_section :: leave ()    {       #ifdef _WIN32          LeaveCriticalSection(&cs);          entered=0;          return 1;       #else          if (pthread_mutex_unlock(&cs) == 0)          {             entered=0;             return 1;          }          else return 0;       #endif    }

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

MySQL ++

Potrazi, radi bez ikakvih problem (koristio sam i shljaka, jedino morash da kotristish libmysql.dll od verzije instaliranog mysql servisa, i neke komande su 'zastarele' i koriste se neke druge, na pr. ne koristis xxx->connect(..) vec xxx->real_connect(...) i slicno.

Pozdrav

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

on trazi za MSSQL, a ne za MySQL Smile

offline
  • cuoea 
  • Novi MyCity građanin
  • Pridružio: 12 Apr 2005
  • Poruke: 6

Hvala na primeru...

Posto sam resio problem koji me je mucio red je i da podelim resenje.

Dakle, problem je bio u pristupu bazi kroz ADO komponente Borland C++ Buildera 5, i sastojao se u tome da koriscenje istih komponenti lepo funkcionise u single-threaded okruzenju.

U mom slucaju, pisao sam servis ciji jedan thread treba da pristupa MSSQL bazi. Iz nekog razloga, koriscenje ovih komponenti besprekorno radi, ali pod uslovom da kreiram jedan objekat u glavnom threadu servisa koji ce konstantno drzati jednu konekciju ka bazi otvorenu. Jedino tada komponente koje dinamicki alociram u thread-u koji zaista treba da pristupa bazi rade kako treba.

Iskreno, nemam predstavu da li je to neki bag u kompajleru/objektima, ili to tako treba da se radi. Jedino korisno sto se tice datih komponenti u Borlandovom help-u potencira da su thread-safe napisane, ali da svi drugi data-aware objekti (koji se mahom koriste u korisnickim aplikacijama) nisu. Ali sve to ne objasnjava ovakvo ponasanje krajnjeg programa...

Ko je trenutno na forumu
 

Ukupno su 1124 korisnika na forumu :: 57 registrovanih, 7 sakrivenih i 1060 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: alkatraz080, AMCXXL, armor, babaroga, bankulen, bokisha253, cemix, Chainsaw, d.arsenal321, dane007, Dannyboy, darkangel, Darko8, Denaya, Dorcolac, dule10savic, flash12, geo.dule, Hans Gajger, Haris, hyla, ivan1973, Joja, Koridor 11, Kriglord, Kubovac, loon123, lucko1, Metanoja, Mi lao shu, Michellefromrezistance, MiG-29M2, Miki01, mikrimaus, milimoj, MrNo, nnovakis, oldtimer, pein, promajauglavi, rodoljub, royst33, Rusmir, samo opusteno, sap, ser.hill, SOVO515, Srki94, Stanlio, Stoilkovic, trajkoni018, Viceroy, vidra boy, Vlada1389, vrag81, yrraf, YugoSlav