Powerbuilder12.5调用sqlite3接口注意事项

前言

在学习pb的时候,要调用sqlite3数据文件 ,可以使用ODBC驱动,也可以直接使用sqlite的C函数接口。由于SQLITE3的接口函数是C语言的调用方式,在pb中调用 ,需要改成stdcall调用方式。

这个大家都会了,这里主要说下,字符串相关的函数调用时的编码转换问题。

1.SQLITE3_OPEN(const char *filename)

这个filename参数,传入的数据应该是unicode类型,默认是UTF8格式。

2.SQLITE3_OPEN_V2(const char *filename)

这个接口传入的filename是UTF-16格式,pb12.5的默认字符串编码格式是UTF-16LE。

3.SQLITE3_EXEC(const char *sql)

这个接口函数中的sql是一个UTF8格式的数据,在pb12.5中的,如果直接 传入字符串是不行的。

要转换编码:

cpp 复制代码
char* UnicodeToUtf8(const wchar_t* unicode)
{
    int len;
    len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL);
    char *szUtf8 = (char*)malloc(len + 1);
    memset(szUtf8, 0, len + 1);
    WideCharToMultiByte(CP_UTF8, 0, unicode, -1, szUtf8, len, NULL, NULL);
    return szUtf8;
}

好了,在这里记录一下心得。

相关推荐
小盼江27 分钟前
智能服装推荐系统 协同过滤余弦函数推荐服装 Springboot Vue Element-UI前后端分离
大数据·数据库·vue.js·spring boot·ui·毕业设计
鸿永与35 分钟前
『SQLite』解释执行(Explain)
数据库·sqlite
鸿永与37 分钟前
『SQLite』子查询可以这样用
数据库·sqlite
007php0071 小时前
如何恢复依赖的go自定义SDK的GoZero项目
java·数据库·python·microsoft·oracle·golang·php
码力全開1 小时前
C 语言奇幻之旅 - 第06篇:C 语言控制流语句
c语言·开发语言·数据库·windows·visualstudio·vim
橘猫云计算机设计2 小时前
基于django车牌识别系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·python·django
m0_748239832 小时前
【MySQL】【已解决】Windows安装MySQL8.0时的报错解决方案
数据库·windows·mysql
兮动人3 小时前
【mysql】流程控制
数据库·mysql
程序员谷美3 小时前
Mysql 性能优化:索引条件下推(ICP)
数据库·mysql·索引
一心只为学4 小时前
pgpool配置安装之服务器的配置
运维·数据库·postgresql·pgpool