sqlite,sqlapiu.lib数据库使用遇到的问题

sqlite写入乱码问题

sqlite数据库类型为TEXT存入时,值是文本字符串,使用数据库编码(UTF-8,UTF-16BE或者UTF-16LE)存放,而传入的字符串是ASCII编码或Unicode编码时写入乱码问题。
解决:将写入的数据编码转成UTF8

void ConvertGBKToUTF8( IN OUT string& strDest )
{
    int iWideUTF8len = MultiByteToWideChar(CP_ACP, 0, strDest.c_str(), -1, NULL, 0);
    WCHAR * pwszUtf8 = new WCHAR[iWideUTF8len+1];
    memset(pwszUtf8, 0, (iWideUTF8len+1)*sizeof(WCHAR));
    MultiByteToWideChar(CP_ACP, 0, strDest.c_str(), -1, pwszUtf8, iWideUTF8len);
    int iUTF8Len = WideCharToMultiByte(CP_UTF8, 0, pwszUtf8, -1, NULL, 0, NULL, NULL);
    char *szUtf8=new char[iUTF8Len + 1];
    memset(szUtf8, 0, iUTF8Len + 1);
    WideCharToMultiByte (CP_UTF8, 0, pwszUtf8, -1, szUtf8, iUTF8Len, NULL,NULL);
    strDest = szUtf8;
    delete[] szUtf8;
    delete[] pwszUtf8;
    return;
}

sqlite3_prepare调用失败

现象:sqlite3_prepare 返回错误码1,找不到指定的表
解决:sqlite 不能重复的 调用 sqlite3_open16 打开,一个sqlite3_open16应该对应一个sqlite3_close,统一只打开一次或者每次打开都要注意关闭。

使用sqlapiu.lib编译不过,R4034错误

SQLAPI++地址: http://www.sqlapi.com/OnLineDoc/
解决:
1:链接器的清单工具中生成清单
2:在stdafx.h的前面加上

#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' 
processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")

win32 控制台程序使用sqlapiusd.lib时候出现_GetFileVersionInfoSizeW@8 error LNK2019

1>sqlapiusd.lib(samisc.obj) : error LNK2019: 无法解析的外部符号 _GetFileVersionInfoSizeW@8,该符号在函数 “void * __cdecl SAGetVersionInfo(wchar_t const *)” (?SAGetVersionInfo@@YAPAXPB_W@Z) 中被引用
解决:#pragma comment(lib, “Version.lib”)
原因: win32 控制台程序默认不链接versions.lib。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载SQLite库的相关文件,包括sqlite3.h、sqlite3.dll和sqlite3.lib,可以按照以下步骤进行: 1. 打开SQLite的官方网站(https://www.sqlite.org/)。 2. 在网站的主页上,点击"Download"(下载)按钮。 3. 在下载页面中,找到相应版本的SQLite库。通常会提供不同的版本,包括预编译好的二进制文件和源代码。 4. 选择适合你系统的版本。如果你使用的是Windows操作系统,通常可以选择一个预编译好的二进制版本。确保选择与你系统架构(32位或64位)相匹配的版本。 5. 下载预编译版本的SQLite库。对于Windows系统,通常会提供一个压缩文件,其中包含sqlite3.h、sqlite3.dll和sqlite3.lib文件。 6. 解压下载的压缩文件。 7. 在解压后的文件夹中,你会找到sqlite3.h文件,该文件是SQLite库的头文件。 8. 在同一文件夹中,你会找到sqlite3.dll文件,该文件是SQLite库的动态链接库文件。你可以将该文件复制到你的项目或应用程序所需的位置。 9. 如果你需要在Visual Studio等IDE中开发应用程序,可以使用sqlite3.lib文件。将该文件添加到你的项目中,以便在编译时链接SQLite库。 10. 现在,你可以在你的项目中包含sqlite3.h头文件,并在编译时链接sqlite3.lib文件,以使用SQLite库的功能。 请注意,这些步骤仅适用于Windows操作系统。在其他操作系统上,可能需要采取不同的步骤或使用不同的文件。建议在下载和使用SQLite库时,参考官方文档和相关资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值