【问题标题】:SQLite Titanium Syntax ErrorSQLite Titanium 语法错误
【发布时间】:2012-07-17 05:19:44
【问题描述】:

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

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

【问题讨论】:

  • 你是怎么用 Titanium 写的?
  • var rs = db.execute('SELECT Date, Content FROM MYDATABASE WHERE strftime('%m%d', date) = strftime('%m%d', date('now')) ');
  • 你试过用双引号“Select ....”吗?
  • 当我用双引号尝试如下var rs = db.execute("SELECT Date, Content FROM MYDATABASE WHERE strftime('%m%d', date) = strftime('%m%d', date('now')) ");时,我得到一个“未捕获的语法错误:意外的令牌非法”
  • 你在 strftime('%m%d', date) 中选择日期和传递日期,为什么?

标签: sqlite titanium appcelerator titanium-mobile


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

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

【讨论】:

  • 我在一个新项目中尝试了你的例子,它可以工作。我的主要项目必须已损坏。问题,如何在您的示例中添加“本地时间”?
  • 本地时间作为数据库示例的字段?还是捕捉当地时间?我认为 date('now') 将是拨打电话的设备的当地时间。如果我的回答对您的问题是正确的,请接受我的回答作为问题的答案。
  • 如果我手动将设备时间更改为 7 月 17 日美国东部标准时间晚上 10:55 并运行上述 SQL,它会报告从 7 月 18 日开始的数据。
  • datetime('now','localtime') 为我返回了系统时钟的时间。根据文档显示 datetime('now') 根据此 souptonuts.sourceforge.net/readme_sqlite_tutorial.html 返回 UTC 时间
  • 如何添加事件侦听器以便在窗口/选项卡处于焦点时更新表格?我当前的代码适用于 webViews,但我不确定如何将它应用到 tableViews。 win.addEventListener('focus',function(e){webview.reload();});
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多