[英].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.