2011-07-06 32 views
1

我試圖插入一些數據到現有的SQLite表中。表和數據庫是使用相同的API創建的,但出於某種原因插入不起作用,並且從不給我一個錯誤消息。SQLite插入在BlackBerry上無提示失敗

我在BlackBerry 9550模擬器上測試這個。

這裏是我的查詢:

final String insertQuery 
    = "INSERT INTO 'Auth'(" 
     + "'" + USER_ID_KEY + "', " 
     + "'" + USER_NAME_KEY + "', " 
     + "'" + USER_PASSWORD_KEY + "') " 
     + "VALUES (" 
     + userId + ", " 
     + "'" + username + "', " 
     + "'" + password + "') "; 

,我用它來運行它的代碼:

final Statement insertOrUpdateStatement; 

insertOrUpdateStatement 
    = database.createStatement(insertQuery); 

insertOrUpdateStatement.prepare(); 
insertOrUpdateStatement.execute(); 
insertOrUpdateStatement.close(); 

它執行得很好,我沒有得到任何錯誤信息,但數據永遠不會插入。我使用了3種不同的SQLite瀏覽器和BlackBerry API來確認這一點。

我試過使用明確的交易,也沒有效果。我搜索了類似的問題,在這段代碼上嘗試了很多變體,並且沒有任何效果。幫幫我?

+0

這裏是整個類,它實現了我用來測試它的登錄函數。 [鏈接](http://www.pastie.org/2174270) –

+0

經過了一整天沒有成功,終於開始工作。我不能說出什麼,如果有的話,我這次做得不一樣。除了古老的COBOL編輯器/編譯器之外,這是我曾經使用過的最耀眼的開發環境。 –

回答

2

我假設這是因爲你的表和字段周圍有多餘的單引號。您是否嘗試從插入語法中刪除引號

final String insertQuery 
     = "INSERT INTO Auth(USER_ID_KEY,USER_ID_KEY,USER_PASSWORD_KEY) " 
      + "VALUES (" 
      + userId + ", " 
      + "'" + username + "', " 
      + "'" + password + "') "; 
+0

我假設的原因是,因爲Sqlite並不是我的專業領域之一,但是您的查詢會在mySQL或SQL Server中混淆 - 因此我認爲它也適用於此。 –

+0

不是我的專業領域,我只是儘量保持儘可能接近我見過的代碼示例。我刪除了引號,沒有任何改變。即使它是一個語法錯誤,我也應該得到一個異常,而不是這個無聲的失敗。 –