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;
}

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

相关推荐
明月_清风7 分钟前
🚀 Flyway 存量数据库迁移:50张表一键导出清洗实战(附完整脚本)
数据库·后端
羊小蜜.16 分钟前
Mysql 08: 数据表基本操作——从创建到约束
数据库·mysql·数据表
程序员小郭8317 分钟前
MySQL分库分表策略全解析(实战版)
数据库·mysql·架构
卓怡学长19 分钟前
m320基于Java的网络音乐系统的设计与实现
java·数据库·spring·tomcat·maven
爱浦路 IPLOOK42 分钟前
选对UPF网元供应商,解锁5G-A时代行业赋能新可能
运维·网络·数据库
Elastic 中国社区官方博客1 小时前
将 Logstash 管道从 Azure Event Hubs 迁移到 Kafka 输入插件
大数据·数据库·elasticsearch·microsoft·搜索引擎·kafka·azure
草莓熊Lotso1 小时前
MySQL 事务管理全解:从 ACID 特性、隔离级别到 MVCC 底层原理
linux·运维·服务器·c语言·数据库·c++·mysql
鸽芷咕1 小时前
Oracle 替代工程实践深度解析:金仓全链路工程实践 —— 从评估决策到平滑上线的深度技术攻坚
数据库·oracle
gushinghsjj1 小时前
元数据管理包含哪些?元数据管理如何支持数据分析?
数据库·oracle·数据分析
不愿透露姓名的大鹏1 小时前
MySQL InnoDB核心参数深度优化/性能调优
运维·服务器·数据库·mysql