需要有关SQLite的帮助

时间:2016-10-30 07:27:40

标签: c sqlite odbc

我想使用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? 提前致谢

1 个答案:

答案 0 :(得分:0)

SQlite3 ODBC管理器创建大小为0的数据库,因为SQLite格式是比数据库更通用的文件格式,当它不包含任何对象时,它的大小为0。 SQLExecuteDirectW返回SQL_NODATA,因为它需要';'在查询结束时,文件大小仅在提交事务后非零。