我有包含 URL 作为主键的数据库。表架构是
-- Describe HISTORY
CREATE TABLE history ("name" TEXT NOT NULL, "location" TEXT NOT NULL PRIMARY KEY, "time_date" DATE)
和样本数据
| name | location | time_date |
| Google | http://www.google.co.tz/?gws_rd=cr | 2013-08-13 |
所以我这样做:
DELETE FROM history WHERE location="http://www.google.co.tz/?gws_rd=cr"
但是删除不起作用!如果我按日期删除或删除一切正常,那么我似乎需要某种转义 URL。我使用 wxSQLite3 和下面的函数
DeleteHistory(const wxString& location)
{
wxString sql = wxT("DELETE FROM history WHERE location=?;");
try
{
wxSQLite3Statement stmt = m_db->PrepareStatement(sql);
stmt.Bind(1, location);
stmt.ExecuteUpdate();
stmt.Reset();
stmt.Finalize();//done
}
catch (wxSQLite3Exception& e)
{
wxMessageBox(e.GetMessage());
return false;
}
return true;
}
数据库文件可以在这里找到:https ://www.dropbox.com/s/szori418cryvvuy/browser.config
我错过了什么?