c++ builder XE2 使用sqlite3数据库 Pointer arithmetic overrun in process

fengyunzhai 2013-06-28 04:20:11
使用cb XE2读写xe2数据库,代码如下:
sqlite3 *pDB = NULL;
char *errMsg = NULL;
int ret = sqlite3_open("D:\\2.db", &pDB);
if (ret != SQLITE_OK) {
sqlite3_close(pDB);
return;
}
else {
int rc = sqlite3_exec(pDB,"CREATE TABLE eng_to_chn(english QString,chinese QString)", 0, 0, &errMsg);
if (rc != SQLITE_OK) {
sqlite3_free(errMsg);
sqlite3_close(pDB);
return;
}
}

if (pDB != NULL)
sqlite3_close(pDB);

编译出现如下信息:
2013/6/28 16:09:34 started a CodeGuard(tm) process: Project1.exe(3320)
Pointer arithmetic overrun in process: Project1.exe(3320) - sqlite3.c#59519
0x0193D8A0+560, that is at offset 848+560 in heap block 0x0193D550 which is only 1032 bytes long.
0x004431EE - sqlite3.c#59519
0x00443582 - sqlite3.c#59653
0x0046C557 - sqlite3.c#14806
0x004A7E32 - sqlite3.c#43524
0x004ABCA2 - sqlite3.c#44797
0x004AD03D - sqlite3.c#45634
0x004877EA - sqlite3.c#27775
0x00487C75 - sqlite3.c#27867
0x00487E4A - sqlite3.c#27931
0x00481E4D - sqlite3.c#24331
0x004B4073 - Unit1.cpp#33-----------------sqlite3_exec所在行
0x50332D75
0x50337168
0x50356CF5
0x503372B8
The memory block (0x0193D550) [size: 1032 bytes] was allocated with malloc
0x004082B2 - sqlite3.c#15436
0x00409596 - sqlite3.c#18734
0x0040966D - sqlite3.c#18767
0x0040A0D7 - sqlite3.c#19103
0x0040A17F - sqlite3.c#19122
0x0044039B - sqlite3.c#58237
0x0044047B - sqlite3.c#58269
0x004405C5 - sqlite3.c#58293
0x0048B7D2 - sqlite3.c#29457
0x0046DF68 - sqlite3.c#15481
0x004A7F52 - sqlite3.c#43563
0x004ABCA2 - sqlite3.c#44797
0x004ACF82 - sqlite3.c#45622
0x004877EA - sqlite3.c#27775
0x00487C75 - sqlite3.c#27867
请教各位高人,这个是由于什么原因引起的,有没有解决的方法。
本人新手,在此先谢谢各位了。
...全文
251 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fbmsyu 2013-07-06
  • 打赏
  • 举报
回复
推荐用Unidac连接。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧