0

以下 SQL 代码在 SQLite 管理器和其他 SQLite 系统中运行良好,但是当我在 Titanium 中使用它时,我得到一个“未捕获的语法错误:意外字符串”。如果我的语法错误,应该如何为 Titanium 编码?

    SELECT Date, Content
    FROM MYDATABASE
    WHERE strftime('%m%d', Date) = strftime('%m%d', date('now')) 
4

1 回答 1

1

您是否将您的表称为 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。您可能需要向我们提供源代码的重要部分,以便我们可以看到代码的流程。给我们碎片是行不通的。

不幸的是,我不得不从另一台计算机上测试它,希望在这里重新输入它不会出错”

于 2012-07-17T14:30:41.893 回答