.txt 到 SQlite3 使用 C++

.txt to SQlite3 with C++

我想用 C++ 从 txt 文件中读取数据并将其插入到 SQlite 数据库中 table。我准备了一个代码,但它不起作用。

我的 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 没有 return 字符串;它将它复制到第二个参数中传递的变量。更改错误行:

   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+");";

并检查它是否有效。