Tag: sqlite3

从CSV读取数据并放入数据库

我有一个包含6列的表格,我有像这样的CSV导出,每行有6个条目 me;val1;val2;val3;val4;val5; me;val1;val2;val3;val4;val5; 我需要阅读这些条目并将其插入SQLITE3数据库中。以便解析我使用的CSV void readcsv() { FILE* stream = fopen(“input.csv”, “r”); char line[1024]; while (fgets(line, 1024, stream)) { char* tmp = strdup(line); printf(“Field 3 would be %s\n”, getcsvfield(tmp, 3)); // NOTE strtok clobbers tmp free(tmp); } } //Used for parsing CSV const char* getcsvfield(char* line, int num) { const char* tok; for (tok = […]

sqlite3 one_file VFS失败

我试图从sqlite3 VFS示例运行test_onefile.c 示例 ,我得到以下失败: test_onefile: test_onefile.c:693: fsDelete: Assertion `strpcmp(“-journal”, &zPath[nName])==0′ failed. 我运行的代码如下: int retval; fs_register(); int q_cnt = 5,q_size = 150,ind = 0; char **queries = (char**) malloc(sizeof(char) * q_cnt * q_size); sqlite3_stmt *stmt; sqlite3 *handle; retval = sqlite3_open_v2( “sampledb.sqlite2”, &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE , “fs”); if(retval) { printf(“Database connection failed\n”); return -1; } printf(“Connection […]

如何在eclipse C / C ++项目中使用sqlite3.c和sqlite3.h

我试图在我的C / C ++项目中使用sqlite3.c和sqlite3.h的合并版本。 它在C和C ++中都有代码。 我在UBUNTU 12.04中使用eclipse IDE。 现在我的问题是,在我的文件中包含sqlite3.h后,我需要sqlite3.c函数并在链接器中添加了ld和pthread库,我仍然遇到错误并且无法构建项目。 这很奇怪,不应该发生。 请查看解释我的问题的以下屏幕截图。 ************************************************** ********************************** ************************************************** ********************************** 我错过了什么? 请帮忙! 谢谢

创建一个char *的2D数组,用回调函数中的sqlite数据填充它

在我的函数中,我调用rc = sqlite3_exec(db, sqlStatement, callback, &a, &zErrMsg); 具有callback函数的函数。 在这个callback函数中,我想用数据库中的数据填充二维char *数组。 struct mytable { char ***data; size_t dim; }; static int callback(void *data, int argc, char **argv, char **azColName) { struct mytable *old = (mytable *)data; char ***temp; old->dim++; temp = (char ***)realloc(old->data, old->dim * sizeof(*old->data)); if (temp) { old->data = temp; old->data[old->dim – 1] = […]

为什么sqlite3_open我们使用双指针**而对于sqlite3_prepare我们使用指针*

请纠正我在哪里理解错误。 我读了这个答案https://stackoverflow.com/a/833124/5175709 ,我理解的是,由于对象可能会扩展并耗尽空间,因此内存位置也会改变。但是这里有两个sqlite3语法引用了对象不同。 为什么? sqlite3_open我们有: sqlite3 **ppDb SQLITE_API int SQLITE_STDCALL sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ 对于sqlite3_prepare,我们有: sqlite3 *db SQLITE_API int SQLITE_STDCALL sqlite3_prepare_v2( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nByte, /* Maximum length of […]

在sqlite3源代码中混淆sqlite3结构

在function static int sqlite3Prepare( sqlite3 *db, /* Database handle. */ const char *zSql, /* UTF-8 encoded SQL statement. */ int nBytes, /* Length of zSql in bytes. */ int saveSqlFlag, /* True to copy SQL text into the sqlite3_stmt */ Vdbe *pReprepare, /* VM being reprepared */ sqlite3_stmt **ppStmt, /* OUT: A pointer to the […]

如何检测sqlite3是否创建了数据库文件?

我正在编写一个程序,它使用sqlite3数据库文件来存储其数据。 如果我打开一个数据库文件 sqlite3_open_v2(filename, &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) 如果数据库文件不存在,则创建该数据库文件。 如何在打开数据库文件之前查明数据库文件是否存在? sqlite3 shell使用如下代码: /* Go ahead and open the database file if it already exists. If the ** file does not exist, delay opening it. This prevents empty database ** files from being created if a user mistypes the database name argument ** to the sqlite […]

Sqlite3 C API行数

我可以在C程序中使用SELECT COUNT(*) from tableName中的SELECT COUNT(*) from tableName吗? 如果是这样,我该如何获取结果? 我不想使用循环,因为我只想要行数,而不是数据。

sqlite3_open – 检查文件是否为sqlite3数据库时出现问题

我是第一次使用sqlite3,在打开文件之前无法正确检查文件。 到目前为止,sqlite总是在任何文件上返回OK。 此外,文件名是从GTK文件选择器返回的变量。 它返回一个绝对路径,我猜这不是问题。 谢谢你的帮助。 这是代码的片段: int rc; char *filename; sqlite3 *db; filename = gtk_file_chooser_get_filename(etc.); if(SQLITE_OK == rc = sqlite3_open(filename,&db)) { etc. }

在Windows上使用SQLite和C.

我试图在Windows Vista上使用SQLite进行数据存储,在C(在Dev-Cpp IDE上)开发一个项目。 我正在尝试运行此代码: Sqlite with C 我在/ lib路径中移动了sqlite3.h。 但是当我试图运行程序时,我收到很多链接器错误,说“未定义引用sqlite3_open”等。 谷歌给了我Linux命令,这里不能使用:(可以somone指导我完成使用C的sqlite的整个过程,我对这些事情很新。我在哪里放sqlite3.exe? 非常感谢 !!