簡體   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