Работаю с ODBC на C++ Builder 6. (создаю файл .mdb, создаю в нем таблицу, записываю данные)
Выдает следующие ошибки:
[Linker Error] Unresolved external 'SQLSetEnvAttr' referenced from D:\UNIT1.OBJ
[Linker Error] Unresolved external 'SQLAllocHandle' referenced from D:\UNIT1.OBJ
[Linker Error] Unresolved external 'SQLFreeHandle' referenced from D:\UNIT1.OBJ
На форумах, по этому делу, шарил. У меня к проекту, как надо, подключены odbc32.lib и odbccp32.lib видимо в них дело...
Может скачать библиотеки для Билдера или скачать Билдер? Или в чем-то другом ошибка?
Здравствуйте, dyrnik, Вы писали:
D>Работаю с ODBC на C++ Builder 6. (создаю файл .mdb, создаю в нем таблицу, записываю данные)
D>Выдает следующие ошибки:
D>D>[Linker Error] Unresolved external 'SQLSetEnvAttr' referenced from D:\UNIT1.OBJ
D>[Linker Error] Unresolved external 'SQLAllocHandle' referenced from D:\UNIT1.OBJ
D>[Linker Error] Unresolved external 'SQLFreeHandle' referenced from D:\UNIT1.OBJ
D>
D>На форумах, по этому делу, шарил. У меня к проекту, как надо, подключены odbc32.lib и odbccp32.lib видимо в них дело...
D>Может скачать библиотеки для Билдера или скачать Билдер? Или в чем-то другом ошибка?
Включаю телепатический режим.... ERROR. Чо-та не работает...
Исходники покажи.

[EOF]
Здравствуйте, trophim, Вы писали:
T>Включаю телепатический режим.... ERROR. Чо-та не работает...
T>Исходники покажи.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#define WIN32
#include <sql.h>
#include <odbcinst.h>
#include <sysutils.hpp>
#include <sqlext.h>
#include <stdio.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma comment(lib,"odbccp32.lib")
#pragma comment(lib,"odbc32.lib")
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN nstatus;
SQLCHAR szConnect[1024];
SQLSMALLINT cbConnString;
//****creat file .mdb
SQLConfigDataSource(
NULL, ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)",
"CREATE_DB=d:\\folks.mdb");
//****creat headle
nstatus = SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv);
nstatus = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,0);
nstatus = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
nstatus = SQLDriverConnect(hdbc,NULL,
(SQLCHAR*) "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\\folks.mdb",
SQL_NTS, szConnect, 1024, &cbConnString, SQL_DRIVER_NOPROMPT);
if (nstatus != SQL_SUCCESS && nstatus != SQL_SUCCESS_WITH_INFO)
{
return;
}
nstatus = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
//--------------------------------------------------------------------------------------------
//****creat table
nstatus = SQLExecDirect(hstmt,(SQLCHAR*) "CREATE TABLE DateTable (dateval CHAR)",SQL_NTS);
if (nstatus != SQL_SUCCESS && nstatus != SQL_SUCCESS_WITH_INFO)
{
return;
}
//****input data in table
nstatus = SQLExecDirect(hstmt, (SQLCHAR*) "INSERT INTO DateTable VALUES (111)",SQL_NTS);
if (nstatus != SQL_SUCCESS && nstatus != SQL_SUCCESS_WITH_INFO)
{
return;
}
nstatus = SQLExecDirect(hstmt, (SQLCHAR*) "INSERT INTO DateTable VALUES (222)",SQL_NTS);
if (nstatus != SQL_SUCCESS && nstatus != SQL_SUCCESS_WITH_INFO)
{
return;
}
//--------------------------------------------------------------------------------------------
//****disconect
nstatus = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
nstatus = SQLDisconnect(hdbc);
nstatus = SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
nstatus = SQLFreeHandle(SQL_HANDLE_ENV,henv);
printf("Done");
}
//---------------------------------------------------------------------------