Доступ к БД, работа с БД
-
- Earned some good credits
- Posts: 111
- Joined: Wed Jul 30, 2008 8:01 am
- Location: Russia/MO
- Contact:
Я когда работал с MySQL юзал стандартную сишную либу, которая в поствке с MySQL - все прекрасно работало. В связи с этим вопрос: Почему бы просто не юзать какую-нибудь стронию либу ODBC наверняка такая есть (или нету?).
win xp sp2; CodeBlocks/mingw/wxWidgets 2.8.9/wxFormBuilder
web-программирование:PHP,js/Ajax
web-программирование:PHP,js/Ajax
Privet,
S mySQL da, est tam 2 varianta - ispolzovat ODBC is mySQL - Connector, ili prjamoj interfejs k baze dannyh.
Pod M$$QL Server'om pod Windoj polzovatsja nado ODBC, pod *nix/Mac - FreeTDS.
FreeTDS ispolzuet 2 lejera - ODBC i TDS biblioteku. TDS eto protokol kotoryj ispolzovan v DB Sybase/M$, a FreeTDS - ego realizacija pod *nix/Mac. I rabotaet eta biblioteka poetomu tolko s serverami ot Sybase ili M$. U Oracle est svoi drajvera dlja dostupa iz Windows, *nix i Mac, u Informix - svoi.
Vot tak.
S mySQL da, est tam 2 varianta - ispolzovat ODBC is mySQL - Connector, ili prjamoj interfejs k baze dannyh.
Pod M$$QL Server'om pod Windoj polzovatsja nado ODBC, pod *nix/Mac - FreeTDS.
FreeTDS ispolzuet 2 lejera - ODBC i TDS biblioteku. TDS eto protokol kotoryj ispolzovan v DB Sybase/M$, a FreeTDS - ego realizacija pod *nix/Mac. I rabotaet eta biblioteka poetomu tolko s serverami ot Sybase ili M$. U Oracle est svoi drajvera dlja dostupa iz Windows, *nix i Mac, u Informix - svoi.
Vot tak.
По протоколам и API положение следующее:
MSSQLServer, Sybase SQLServer, Sybase SQLAnywhere - можно юзать через OpenTDS. Последний только в определенных конфигурациях.
Все остальные СУБД имеют собственный свой протокол и API, через который можно юзать все "фичи" СУБД.
Обычно все СУБД имеют ODBC драйвер, но через ODBC обычно нельзя пользовать все возможности СУБД и каждый имеет особенности реализации. Исключение только Sybase SQLAnywhere, там ODBC - родной протокол.
Это резюме по тому что юзал сам. Oracle(6,7,8), SQLAnywhere(4,5,6), SQLBase(5), MSSQLServer(2000, 2005), PostgreSQL(7,8)
MSSQLServer, Sybase SQLServer, Sybase SQLAnywhere - можно юзать через OpenTDS. Последний только в определенных конфигурациях.
Все остальные СУБД имеют собственный свой протокол и API, через который можно юзать все "фичи" СУБД.
Обычно все СУБД имеют ODBC драйвер, но через ODBC обычно нельзя пользовать все возможности СУБД и каждый имеет особенности реализации. Исключение только Sybase SQLAnywhere, там ODBC - родной протокол.
Это резюме по тому что юзал сам. Oracle(6,7,8), SQLAnywhere(4,5,6), SQLBase(5), MSSQLServer(2000, 2005), PostgreSQL(7,8)
Еще одна лажа в ODBC реализации DatabaseLayer
Следующий код не работает
Доставать значения надо точно в соответствии с порядком столбцов в SQL запросе.
А вот этот работает
Следующий код не работает
Code: Select all
model::TipPrivoda d(rs->GetResultLong(_T("ID_TIP_PRIVODA")),
rs->GetResultString(_T("TIP_PRIVODA")),
rs->GetResultString(_T("TIP_PRIVODA_NAME")),
rs->GetResultDouble(_T("POWER_KVT")),
rs->GetResultDouble(_T("OPEN_TORQUE")),
rs->GetResultDouble(_T("CLOSE_TORQUE")),
rs->GetResultString(_T("PICTURE_NUMBER")));
А вот этот работает
Code: Select all
long ID_TIP_PRIVODA = rs->GetResultLong(_T("ID_TIP_PRIVODA"));
wxString TIP_PRIVODA = rs->GetResultString(_T("TIP_PRIVODA"));
wxString TIP_PRIVODA_NAME = rs->GetResultString(_T("TIP_PRIVODA_NAME"));
double POWER_KVT = rs->GetResultDouble(_T("POWER_KVT"));
double OPEN_TORQUE = rs->GetResultDouble(_T("OPEN_TORQUE"));
double CLOSE_TORQUE = rs->GetResultDouble(_T("CLOSE_TORQUE"));
wxString PICTURE_NUMBER = rs->GetResultString(_T("PICTURE_NUMBER"));
model::TipPrivoda d(ID_TIP_PRIVODA,
TIP_PRIVODA,
TIP_PRIVODA_NAME,
POWER_KVT,
OPEN_TORQUE,
CLOSE_TORQUE,
PICTURE_NUMBER);
Да нет, это лажа, ForwardOnly - это курсор в котором можно двигаться по записям только в перед, а насчет ограничений в порядке выбора полей, я первый раз слышу. Просветите, ссылочку на описание киньте.
Или это форма трактовки ForwardOnly от ODBC?
Пользовал SQLAnywhere через ODBC правда из под Centura TeamDeveloper, так там таких вещей не было.
Или это форма трактовки ForwardOnly от ODBC?
Пользовал SQLAnywhere через ODBC правда из под Centura TeamDeveloper, так там таких вещей не было.
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Ухъ.. по поводу SQLite уже сказано-пересказано столько что просто мозх лопается. Сходи на http://wxwidgets.info и почитай статью, там вроде я по максимуму описал что можно с ней делать.