繁体   English   中英

.txt使用C ++转换为SQlite3

[英].txt to SQlite3 with C++

我想从txt文件中读取数据,并将其插入C ++的SQlite数据库表中。 我准备了代码,但是没有用。

下面是我的txt文件中的示例行; ',1417392060.000000','1.245430','1.2456','1.24469','1.245000'

和代码;

  sqlite3 *db; char *zErrMsgt = 0; int rct; int rch; int rchi; rct = sqlite3_open("final.db", &db); if( rct ){ fprintf(stderr, "Can't open database: %s\\n", sqlite3_errmsg(db)); exit(0); }else{ fprintf(stdout, "Opened database successfully\\n"); } string resline; ifstream res("Res.txt"); while(getline(res,resline)){ string sqlli = "INSERT into FOREXNEW(DATE,OPEN,HIGH,LOW,CLOSE) VALUES ("getline(res,resline)");"; rchi = sqlite3_exec(db, sqlli.c_str(), callback, 0, &zErrMsgt); if( rchi != SQLITE_OK ){ cout << "SQL error:" << zErrMsgt; sqlite3_free(zErrMsgt); }} sqlite3_close(db); 

任何其他建议和解决方案也将不胜感激:)谢谢。

Getline不返回字符串。 它将其复制到第二个参数中传递的变量。 更改错误行:

   string sqlli = "INSERT into FOREXNEW(DATE,OPEN,HIGH,LOW,CLOSE) VALUES ("getline(res,resline)");";

至:

   string sqlli = "INSERT into FOREXNEW(DATE,OPEN,HIGH,LOW,CLOSE) VALUES ("+resline+");";

并检查它是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM