以下 SQL 代码在 SQLite 管理器和其他 SQLite 系统中运行良好,但是当我在 Titanium 中使用它时,我得到一个“未捕获的语法错误:意外字符串”。如果我的语法错误,应该如何为 Titanium 编码?
SELECT Date, Content
FROM MYDATABASE
WHERE strftime('%m%d', Date) = strftime('%m%d', date('now'))
以下 SQL 代码在 SQLite 管理器和其他 SQLite 系统中运行良好,但是当我在 Titanium 中使用它时,我得到一个“未捕获的语法错误:意外字符串”。如果我的语法错误,应该如何为 Titanium 编码?
SELECT Date, Content
FROM MYDATABASE
WHERE strftime('%m%d', Date) = strftime('%m%d', date('now'))
您是否将您的表称为 MYDATABASE?您是否正在逐步调试调试器并确认var rs = db.execute("SELECT Date, Content FROM MYDATABASE WHERE strftime('%m%d', date) = strftime('%m%d', date('now')) ");
在我的 Titanium Mobile 项目中,我首先定义了数据库:
var db = Ti.Database.open('myDb');
db.execute('CREATE TABLE IF NOT EXISTS [MYDATABASE](id INTEGER PRIMARY KEY AUTOINCREMENT, Date DATE, Content TEXT)');
db.close();
然后我从函数调用中执行了这段代码
var db = Ti.Database.open('myDb');
var myresult = db.execute("INSERT INTO MYDATABASE(Date, Content) VALUES (date('now'), '12345')");
myresult = db.execute("SELECT Date, Content FROM MYDATABASE WHERE strftime('%m%d', Date) = strftime('%m%s', date('now')) ");
Ti.API.info('myresult: ' + myresult.fieldByName('Content'));
此代码在调试窗口中成功为我返回 myresult: 12345。您可能需要向我们提供源代码的重要部分,以便我们可以看到代码的流程。给我们碎片是行不通的。
不幸的是,我不得不从另一台计算机上测试它,希望在这里重新输入它不会出错”