2011-04-18 47 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