2016-10-30 1 views
-1

Я хочу добавить SQLite в существующее приложение базы данных, используя odbc api. Я очень новичок в SQLite. поэтому мне нужно несколько советов по запуску. Вот часть моего коданужна помощь по SQLite

wchar_t wszInStr[256] = L"DRIVER=SQLite3 ODBC Driver; Version=3; Database=D:\\Amin88\\AminDB.db; LongNames=0; Timeout=1000;NoTXN=0; SyncPragma=NORMAL; StepAPI=0;" 
wchar_t wszOutStr[1024]; 
SQLSMALLINT uOutLen = 0;  
retcode = SQLDriverConnectW(m_hdbc, hWndMain, wszInStr, _countof(wszInStr), wszOutStr, _countof(wszOutStr), &uOutLen, SQL_DRIVER_NOPROMPT); 
const wchar_t * wszQuery = L"CREATE TABLE ATDBROLE (\"ID\" INTEGER NOT NULL)" ; 
SQLRETURN retcode; 
retcode = ::SQLExecDirectW(hstmt, (SQLWCHAR*)wszQuery, SQL_NTS); 
wprintf(L"retcode=%d\n", retcode); //retcode=100 

SQLDriverConnectW возвращает 0 (успех), и файл 'D: \ Amin88 \ AminDB.db' создается с нулевым размером? Означает ли это, что база данных создана? почему размер равен 0? Предполагая создание базы данных, почему CREATE DATABASE возвращает SQL_NODATA? Заранее благодарен

ответ

0

Менеджер ODBC SQlite3 создает базу данных с размером 0, потому что формат SQLite является более общим файловым форматом, чем база данных, и его размер равен 0, когда он не содержит объектов. SQLExecuteDirectW возвращает SQL_NODATA, потому что он ожидает ';' в конце запроса, а размер файла отличен от нуля только после транзакции фиксации.

 Смежные вопросы

  • Нет связанных вопросов^_^