使用sqlite select语句抛出异常

时间:2016-04-25 04:40:34

标签: c++ sqlite

我愿意访问我的SQLite数据库中coloumn中的特定元素,所以为了实现这一点,我使用了一个select语句

char *query = {0};
            strcat(query, "SELECT ");//exception thrown here
            strcat(query, (char*)arr);//The value to be asscessed
            strcat(query, " FROM CARS");

但这是在ucrtbased.dll中抛出异常的原因?

更新

我已经提到了这个答案here并试了一下,char* line1 = "SELECT "; char* line2 = (char*)arr; char* line3 = " FROM CARS"; size_t len1 = strlen(line1); size_t len2 = strlen(line2); size_t len3 = strlen(line3); char *query = (char*)malloc(len1 + len2 + len3 + 1); if (!query) abort(); memcpy(query, line1, len1); memcpy(query + len1, line2, len2); query[len1 + len2 + len3] = '\0';

但是我发现我做错了什么(因为跳出来跳到了else语句,这意味着无效的sqlite语句),我无法理解它,请帮助我。

我也提到了这个教程@ cplusplus.com,但无法弄明白 谢谢

1 个答案:

答案 0 :(得分:1)

您尚未向query分配任何内存,并尝试将某些字符复制到其中。如果已知大小,您可以在char query[256] = {0};之类的堆栈上创建变量。否则,您可以使用new[]动态分配内存,并使用delete[]释放内存。