Questions tagged «sqlite»

SQLite是一个软件库,可实现自包含,无服务器,零配置的事务型SQL数据库引擎。



12
SQLite中是否有布尔文字?
我知道boolean 列类型,但是SQLite中有boolean 文字吗?在其他语言中,这可能是true或false。显然,我可以使用0和1,但是我倾向于尽可能避免使用所谓的“幻数”。 从此列表来看,它似乎可能存在于其他SQL实现中,但不存在于SQLite中。(我正在使用SQLite 3.6.10,这是值得的。)

2
SQLite:无法在索引1处绑定参数,因为索引超出范围。该语句具有0个参数
我收到以下错误,我不知道为什么会发生。我想知道是否还有其他人可以阐明这个问题。 12-25 22:52:50.252: E/AndroidRuntime(813): Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters. 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) …
70 android  sqlite 


8
SQLite参数替换问题
将SQLite3与Python 2.5结合使用,我试图遍历列表,并根据商品名称从数据库中获取商品的权重。 我尝试使用“?” 建议使用参数替换来防止SQL注入,但是它不起作用。例如,当我使用: for item in self.inventory_names: self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", item) self.cursor.close() 我得到错误: sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了8。 我认为这是由最初创建数据库引起的;我制作的实际上创建数据库的模块确实具有8个绑定。 cursor.execute("""CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT)""") 但是,当我为每个项目名称使用不太安全的“%s”替换时,它就可以正常工作。像这样: for item in self.inventory_names: self.cursor.execute("SELECT weight FROM …
70 python  sqlite 

6
如何从sqlite存储和检索blob?
我已经在c ++,python和现在(也许)在C#中使用了sqlite。在所有这些中,我都不知道如何在表中插入Blob。如何在sqlite中存储和检索Blob?
69 sqlite  blob 

6
SQL在日期之间选择
我正在运行sqlite以选择两个范围之间的数据作为销售报告。要从两个日期之间选择数据,我使用以下语句: SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011"; 该语句将获取所有日期,甚至超出条件的日期。您输入的日期格式与我输入的日期格式相同。我不确定发生了什么问题,但感谢您能找到的任何帮助。谢谢!
69 sql  sqlite 


5
如何在Android应用程序中执行SQLite查询?
我试图在我的Android数据库上使用此查询,但是它不返回任何数据。我想念什么吗? SQLiteDatabase db = mDbHelper.getReadableDatabase(); String select = "Select _id, title, title_raw from search Where(title_raw like " + "'%Smith%'" + ")"; Cursor cursor = db.query(TABLE_NAME, FROM, select, null, null, null, null); startManagingCursor(cursor); return cursor;

11
如何为Android应用程序按降序排列我的SQLITE数据库?
以降序显示数据的最有效方法是什么? public String getRank() { String[] rank = new String[]{ KEY_ROWID }; Cursor c = scoreDb.query(DATABASE_TABLE, rank, null, null, null, null, null); //reading information from db. String rankResult = ""; int iRow = c.getColumnIndex(KEY_ROWID); //Cursor looking for column setting equal to these ints. for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { //Move to …

5
SQLite,python,unicode和非utf数据
我首先尝试使用python将字符串存储在sqlite中,并得到以下消息: sqlite3.ProgrammingError:除非使用可以解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您改为将应用程序切换为Unicode字符串。 好的,我切换到Unicode字符串。然后我开始收到消息: sqlite3.OperationalError:无法解码为文本为“ SigurRós”的UTF-8列“ tag_artist” 尝试从数据库检索数据时。进行了更多研究,我开始在utf8中对其进行编码,但随后“ SigurRós”开始看起来像“ SigurRós” 注意: 正如@John Machin指出的那样,我的控制台设置为在“ latin_1”中显示。 是什么赋予了?看完这篇文章并描述了我所处的完全相同的情况之后,似乎该建议是忽略其他建议并毕竟使用8位字节串。 在开始此过程之前,我对unicode和utf不太了解。在过去的几个小时中,我学到了很多东西,但是我仍然不知道是否有一种方法可以将“ó”从拉丁文1正确地转换为utf-8,而不是对其进行处理。如果没有,为什么sqlite强烈建议我将应用程序切换为unicode字符串? 我将使用最近24小时内我学到的所有内容的摘要和一些示例代码来更新此问题,以便穿鞋的人可以轻松获得指南。如果我发布的信息有误或以任何方式引起误导,请告诉我,我会更新,或者你们中的一位资深人士可以更新。 答案摘要 让我先说一说我了解的目标。如果要在各种编码之间进行转换,则处理各种编码的目的是要了解源编码是什么,然后使用该源编码将其转换为unicode,然后将其转换为所需的编码。Unicode是一个基础,编码是该基础的子集的映射。utf_8可以容纳unicode中的每个字符,但是由于它们与例如latin_1不在同一个位置,因此,以utf_8编码并发送到latin_1控制台的字符串看起来不会像您期望的那样。在python中,进入unicode并转换为另一种编码的过程如下: str.decode('source_encoding').encode('desired_encoding') 或者如果str已经在unicode中 str.encode('desired_encoding') 对于sqlite,我实际上并不想再次对其进行编码,我想对其进行解码并将其保留为unicode格式。在尝试使用python中的unicode和编码时,可能需要注意以下四点。 您要使用的字符串的编码以及要获取的字符串的编码。 系统编码。 控制台编码。 源文件的编码 详细说明: (1)从源读取字符串时,它必须具有某种编码,例如latin_1或utf_8。就我而言,我从文件名中获取字符串,所以不幸的是,我可能会获得任何类型的编码。Windows XP使用UCS-2(Unicode系统)作为其本机字符串类型,这对我来说似乎是作弊行为。对我来说幸运的是,大多数文件名中的字符都不会由多个源编码类型组成,而且我认为我的全部要么完全是latin_1,完全是utf_8,要么仅仅是纯ascii(这是两个字符的子集)那些)。因此,我只是阅读它们并对其进行解码,就好像它们仍在latin_1或utf_8中一样。不过,在Windows上的文件名中,可能有latin_1和utf_8以及其他任何字符混合在一起的可能。有时这些字符会显示为方框,有时候,它们看起来像是被弄乱了,而有时候,它们看起来是正确的(带重音的字符等等)。继续。 (2)Python具有默认的系统编码,该默认系统编码会在python启动时设置,并且无法在运行时更改。有关详细信息,请参见此处。肮脏的摘要...好吧,这是我添加的文件: \# sitecustomize.py \# this file can be anywhere in your Python path, \# but it usually goes in …

3
IllegalArgumentException:索引1处的绑定值为null
有人知道这意味着什么吗? 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:234) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:182) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:48) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280) 12-31 20:55:45.861: ERROR/AndroidRuntime(12478): at net.lp.collectionista.providers.ProductContentProvider.query(ProductContentProvider.java:350) …

1
Android Q:范围存储中的SQLite数据库
在Android Q中引入了新的范围存储功能,该功能表示: 默认情况下,面向Android 10(API级别29)及更高版本的应用会获得对外部存储(或范围存储)的范围内访问权限。此类应用程序只能访问外部存储上特定于应用程序的目录以及该应用程序创建的特定媒体类型。 我有我的应用程序在外部存储上创建SQLite数据库,这样,当应用程序卸载数据库时,该数据库仍然有效,以后可以用作恢复功能,也可以在Android设备之外使用(例如在PC中) 如何使用Android Q达到相同的效果?更准确地说,如果数据库存储在外部公共目录中,如何使用标准读取此数据库SQLiteOpenHelper?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.