0
Cアプリケーションを使用してfirefoxとchromeの履歴を表示しようとしています.Sqlコマンドにはシンボルは含まれていませんがChromeには履歴が含まれていますシンボルは、ので、この機能は、私は私にエラーを与える.IT結果与えるものではありません:Cアプリケーションでsqlite3を実行できませんでした
いいえ、そのようなテーブル:moz_historyvisits
それとも、私はコマンドからのこの要求をテストするとき、それがうまく機能プロンプト。私の問題は、SQLリクエストには(_)記号が含まれていると思います。 Rq:クローム履歴の場合はうまく機能します。 CallbackFirefoxは結果を表示する機能です 私はIDEとしてコードブロックとウィンドウを使用しています。私はsqlite_master
int DisplayFirefoxHistory()
{
sqlite3 *db;
char *err_msg = 0;
system("cd C:/Users/******/AppData/Roaming/Mozilla/Firefox/Profiles/*.default");
int rc = sqlite3_open("places.sqlite", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Cannot open database: %s\n",sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
char *sql = "select url,datetime(visit_date/1000000-11644473600,'unixepoch') from moz_historyvisits,moz_places order by visit_date desc";
rc = sqlite3_exec(db, sql, callbackFirefox, NULL, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to select data\n");
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
return 0;
}
コードが正しいデータベースを開いていますか? –
はい、コマンドプロンプトで同じsqlコマンドをコピー&ペーストするとうまくいきます。クロム履歴を表示するときにsqlite3が機能するので、環境やライブラリの問題にはならない –
あなたはyesと答えていますが、コマンドラインツールでSQLを実行してSQLのテーブルを見つけることはできません。 SQLを "SELECT name FROM sqlite_master"に置き換えて、コードが見つかったテーブルを確認してください。 –