2011-04-18 68 views
0

我開發一個Android應用程序,並有以下查詢結果:的Android MySQLLite選擇查詢不工作,不取從代碼

result = myDataBase.query(HD_TABLENAME, new String[]{HD_KEYDATE, HD_KEYFESTID}, 
     "YEAR = "+ year +" AND MONTH = " + month, null, null, null, HD_KEYDATE); 

我寫調用該查詢定製DataBaseHelper。

上述結果分爲以下查詢:

SELECT DATE, FESTIVALID FROM HOLIDAYDATES WHERE YEAR = 2010 AND MONTH = 1 ORDER BY DATE 

當我執行對同一文件從SQLLite管理員相同的查詢時,它返回所需要的行。

有沒有例外,我怎麼能得到上述工作。 數據庫存在,它適用於以前的查詢。 是否有結果對象的任何屬性,我可以查看哪些是確切的錯誤?

不知道這將有助於: 我的查詢的執行後獲得甲logcat的消息:

10月4日至19日:39:54.803:DEBUG/SntpClient(71):請求失敗時:java.net.SocketException異常:地址家族不受協議支持

澄清: 一個屬性有這樣的: result.mStackTrace已值= android.database.sqlite.DatabaseObjectNotClosedException:應用程序沒有關閉遊標或數據庫對象被打開在這裏

現在,我想首先我必須關閉並打開一些光標,我愚蠢地留下來,但現在試圖找到它,如果你可以提出任何建議,請做。

其他問題,有什麼方法可以查看到數據庫的開放連接嗎?

+0

你在哪裏得到錯誤?可不是嘛。你檢查過logcat嗎?你可以在你的數據庫查詢調用 – wired00 2011-04-18 13:16:44

+0

周圍放置一個Try {} catch(Exception e){Log.d(「blah」,e.getMessage())}這是沒有錯誤的,這是它編譯和運行的問題,但結果爲零,而相同的查詢就像SQLLite管理中的一個魅力一樣..:/ – manishKungwani 2011-04-19 05:02:41

+0

嗯,這是一個奇怪的。我知道你說沒有錯誤,但只是爲了確保你嘗試在try {} catch(){}中包含呼叫? – wired00 2011-04-19 05:08:44

回答

0

您使用過嗎?

dataBase = this.openOrCreateDatabase(dbName,MODE_PRIVATE,null);

+0

哦,是的,數據庫連接是打開的,其他查詢工作正常! 問題是,我從這個查詢沒有行...是否有返回的遊標的任何屬性,可以告訴我爲什麼? :/ – manishKungwani 2011-04-19 05:01:44

+0

有一個遊標打開,但這是接近答案。 – manishKungwani 2011-04-28 12:13:33