0
我使用c:\ tmp中的以下代碼在C++中創建了數據庫。還創建了表並可以在C++中訪問表。但是當我嘗試通過SQLite命令行訪問該表時,我得到「沒有這樣的表」的錯誤。無法訪問SQLite上命令行上的表
這是我如何用C創建數據庫++
rc = sqlite3_open_v2("file:///C:/tmp/myTest1.db", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE| SQLITE_OPEN_URI, NULL);
if(rc){
printf( "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
}else{
printf( "Opened database successfully\n");
}
/* Create SQL statement */
sql = "CREATE TABLE LoadDates(" \
"ID TEXT NOT NULL," \
"DT INT NOT NULL );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if(rc != SQLITE_OK){
printf( "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}else{
printf( "Table created successfully\n");
}
sql = "INSERT INTO LoadDates (ID,DT) " \
"VALUES ('A1', 20160701); " \
"INSERT INTO LoadDates (ID,DT) " \
"VALUES ('A2', 20160601); " \
"INSERT INTO LoadDates (ID,DT) " \
"VALUES ('A3', 20160801 );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if(rc != SQLITE_OK){
printf("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}else{
printf( "Records created successfully\n");
}
然後,當我訪問訪問通過命令行我獲得以下錯誤LoadDates。我可以看到myTest1.db在C:\ tmp目錄
c:\tmp>sqlite3.exe myTest1
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite> select * from LoadDates;
Error: no such table: LoadDates