0

我在我的项目中使用http://code.google.com/p/gwt-mobile-webkit/downloads/list?q=label:API-Database 。有两个文本框,用户可以输入两个单词。在将这两个词保存在 html 数据库中之前,我正在查看这两个词是否已经在保存的数据库中。问题是我不知道 SELECT * FROM words WHERE word1=value1 AND word2=value2 的正确语法应该如何。

final String word1 = view.getWord1TextBox().getValue();
final String word2 = view.getWord2TextBox().getValue();
if(Database.isSupported()){
         Database db = Database.openDatabase("Words", "1.0", "Word App", 10000);
         db.transaction(new TransactionCallback() {
                public void onTransactionStart(SQLTransaction tx) {
                    tx.executeSql("SELECT * FROM words WHERE word1=(?) AND word2=(?)", new Object[]{word1, word2}, new StatementCallback<JavaScriptObject>() {
                        public void onSuccess(SQLTransaction transaction, SQLResultSet<JavaScriptObject> resultSet) {
                             System.out.println(" count of rows : "+ resultSet.getRowsAffected());
                        }

                        public boolean onFailure(SQLTransaction transaction,SQLError error) {


                            return false;
                        }
                    });
                }

                public void onTransactionSuccess() {

                }

                public void onTransactionFailure(SQLError error) {
                    //setTextMessageLabel("Could not open database", label );
                }
            });
    }

resultSet.getRowsAffected() is everytime = 0 应该如何看起来像 correkt 查询?还是还有其他问题?请帮忙

4

1 回答 1

0

你怎么知道你的插入有效?

“SELECT * FROM words”是否返回任何内容?

我使用http://code.google.com/p/gwt-mobile-webkit/wiki/DataServiceUserGuide所以我的语法有点不同,但是使用 chrome 中的开发人员工具,您可以找到数据库并在其中运行 sqlite 命令。

这样做,这给了我一个错误

SELECT * from course where desc = (summer)

使用引号有效

SELECT * from course where desc = ("summer") SELECT * from course where desc = "summer"

您可能需要在代码中对其进行转义...

"SELECT * FROM words WHERE word1=(\"?\") AND word2=(\"?\")"
于 2012-08-07T22:24:01.650 回答