Citat:
Ruka: Sve je bolje od ODBC-a :)
Ali nemoj da mesas ADO i ODBC. ADO je odlican za pristup access-u i mssql-u.
ADO je odlican za svakojaki pristup svake baze za kojoj imas pravi driver. ADO je jedno nivo iznad ODBC-a u hierarhiji pristupa baze. Znaci preko ADO pristup ide ovako:
ADO <-> OLE DB Client Lib <-> RDBMS,
ako se uz ado-a koristi OLE DB driver, sto je skoro isto direktnom pristupu RDBMS-a.
Znaci ako imas OLE DB driver, onda mozes direktno pristupati kojem god zazelis RDBMS.
Sto ti je odprilike isto i kad koristis DBExpress:
DBExpress <-> DB Client Lib <-> RDMB
uz to sto ti je razlika da ADO zna koristiti _samo_ oledb client library, a dbexpress je dizajniran da zna upravljati sa nativnim db client library-ja preko posebnog layera koji je onaj drugi dll koji moras distribuirati pored client liba (dbexp*.dll, gde je * ime baze, primer za dbexpmysql.dll)
U principu ADO->OLE DB->RDBMS ili dbExpress->Client Lib->RDBMS je prilicno isto sa manjim prednostima i negativnostima na obe strane. Jedino je to sto za ADO MS trazi da client lib bude prema nekoj standardu (OLE DB) a za dbExpress Borland sam uradi adaptaciju preko novog nivoa translacije clientskim pozivima.
E sada, here comes ODBC. ODBC kao standard je samo nacin da se unificira pristup prema bazama i prema tome imas jos nekoliko nivoa apstrakcije koje uzput usporavaju pristup. Znaci ako imamo za pristup RDBMS-a ADO+ODBC onda
ADO <-> ODBC Driver Manager<-> ODBC Client Lib <-> RDBMS
ali ipak i DB Express mozemo ovako pretstaviti:
DBExpress <-> Borland DB interfejs <-> DB Client Lib <-> RDMB
Prema ovome, u zavisnosti od RDBMSa, ali ipak generalno pravilo je da je pristup cisto preko client liba najbrzi. T.j za SQL Server OLE DB/ADO, za Interbase IBX, za MySQL valjda ZeOS ili neki drugi koji podrzava mysql client direktno.
ODBC je sporiji za neki procenat u zavisnosti od RDBMS-a od 10-15% do 30%.
Tako da prema svoje potrebe odaberes i nacin pristupa baze :)
People who think they know everything tend to irritate those of us who do.