#1 27.08.10 12:05
Подключение С++ к MS SQL
Использую Window+gcc+IDE Eclipse+база MS SQL server
Решил использовать ODBC для подключения.
Но уже сразу начались проблемы нащел такой код, который типа должен выводить источники данных:
Код::
int main()
{
char datasrc[MAX_BUF] = {0};
char descrip[MAX_BUF] = {0};
short rdsrc = 0, rdesc = 0;
SQLHENV hEnv;
SQLRETURN ret;
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HENV, &hEnv);
ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
SQLSMALLINT direction = SQL_FETCH_FIRST;
while(1)
{
ret = SQLDataSources(hEnv, direction, (SQLTCHAR*)datasrc, MAX_BUF, &rdsrc, (SQLTCHAR*)descrip, MAX_BUF, &rdesc);
if(SQL_NO_DATA == ret) break;
direction = SQL_FETCH_NEXT;
CharToOem(datasrc, datasrc);
CharToOem(descrip, descrip);
printf("* %s (%s) ", datasrc, descrip);
}
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
printf(" ");
while(1)
{
}
}добавил туда
#include <iostream>
#include <windows.h>
#include <WinDef.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include <odbcinst.h>
using namespace std;
Почитал, написано надо добавить DLL-ку odbccp32.dll, пытаюсь воткнуть:
Код::
#pragma comment(lib,"odbccp32.dll")
оно игнорит строчку... порыл в интернете, написано gcc не понимает это.
Пытаюсь добавить в Project=>Properties=>Paths and Symbols=>Libraries, при компиляции выдает:
Код::
g++ -oTEST.exe src\TEST.o -lD:\Vova\EclipseProjects\TEST\lib\odbccp32.dll C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lD:\Vova\EclipseProjects\TEST\lib\odbccp32.dll
Пытаюсь добавить в Project=>Properties=>Paths and Symbols=>Library Paths папку D:\Vova\EclipseProjects\TEST\lib, выдает:
Код::
g++ -LD:\Vova\EclipseProjects\TEST\lib -oTEST.exe src\TEST.o src\TEST.o: In function `main': D:/Vova/EclipseProjects/TEST/Debug/../src/TEST.cpp:22: undefined reference to `SQLAllocHandle@12' D:/Vova/EclipseProjects/TEST/Debug/../src/TEST.cpp:23: undefined reference to `SQLSetEnvAttr@16' D:/Vova/EclipseProjects/TEST/Debug/../src/TEST.cpp:27: undefined reference to `SQLDataSources@32' D:/Vova/EclipseProjects/TEST/Debug/../src/TEST.cpp:34: undefined reference to `SQLFreeHandle@8'
P.S. :: Сильно какашками меня не закидывайте, никогда ни писал клиента, да и вообще я программист БД, так что в этом не разбираюсь, только консольные прграмки на сишке писал без всяких там API и всякой хрени... :((
Исправлено +VoFFka+ (27.08.10 12:07)
Offline

