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