【问题标题】:Error Retrieving Data From SQLITE [duplicate]从 SQLITE 检索数据时出错 [重复]
【发布时间】:2015-02-08 09:04:12
【问题描述】:

我的 android 应用程序使用 SQLITE。 当我尝试从某个表中检索数据时,一切正常,除了一列特别是 varchar 类型并包含一个巨大的文本(base64 字符串将被转换为文件)。

当我尝试从该表中检索任何其他列时,检索成功,但在该列上出现错误:

 java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow.  Make sure the   
  Cursor is initialized correctly before accessing data from it.

这是我的代码:

    String Filequery= "Select FileName from Hyperlinks_GVT where Taskcode='"+currentTaskCode+"' 
                        and Name='"+tempItem.getText()+"'";
                  Log.d(TAG,"Query is: "+Filequery);
                try {
                    cursor3 = MainActivity.myDataBase.rawQuery(Filequery, null);
                    String Data="";
                    byte[] btData;
                    if (cursor3 != null && cursor3.moveToFirst()){
                        do {
                         Data=cursor3.getString(cursor3.getColumnIndex("FileName"));
                        } while (cursor3.moveToNext());
                    }
                    cursor3.close();

桌子:

CREATE TABLE [Hyperlinks_GVT](
[ID]  integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[Taskcode] [int] NOT NULL,
[TaskYear] [int] NOT NULL,
[Name] [varchar](100) NOT NULL,
[FileName] [varchar] NOT NULL,
[Notes] [varchar](200) NOT NULL,
[UserID] [nvarchar](50) NOT NULL,
[CreationDT] [varchar](100)  NOT NULL)

FIleName 为大数据列 注意:当我使用 SQLITE 管理器在 Firefox 中执行查询时,查询会检索结果,因此查询很好并且没有错误。 任何帮助将不胜感激。

【问题讨论】:

  • 尝试在 FileNamem 中使用硬编码的小文本,并检查它是否有效
  • 它适用于小文本
  • 我应该更改列类型吗?虽然我不认为这是一个问题,因为该列正如我所说的那样保存数据并且可以在 SQLITE 管理器中查看,所以代码是我认为的问题
  • 谁给了 -1 以及为什么。我不清楚这个问题,在我问之前我已经尝试解决了吗?!
  • 一个 blob 需要更少的存储空间,但是对于足够大的文件,这并不重要。在任何情况下,大字符串和 blob 的行为都是相同的。

标签: java android sqlite


【解决方案1】:

试试这个: 将文件名的数据类型从 varchar 更改为 TEXT。

【讨论】:

  • 我试过了,现在我有一个额外的错误说:12-10 11:15:26.104: W/CursorWindow(11911): Window is full: requested allocation 3382005 bytes, free space 2096708 bytes , 窗口大小 2097152 字节
  • 所以我想我不能同时检索那么多数据:/?
  • 现在您的数据已加载到光标中,但窗口已满。尝试使用具有更好内存管理的其他设备。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多