标签: sqlite

Android支持JDBC吗?

我知道在Android上有android.database.sqlite包,提供有用的类来管理内部的android数据库.

问题是 - 我可以使用标准的java.sql包来操作Android的数据库,而无需使用android.database.sqlite中的任何内容.*我尝试使用SQLite JDBC驱动程序打开连接但是当我添加库作为项目eclipse的e引用时崩溃与"java堆内存不足...无法转换为dalvik VM".

sqlite android jdbc

21
推荐指数
3
解决办法
2万
查看次数

由于java.lang.IllegalArgumentException,应用程序在启动时崩溃:列'_id'不存在

每当我启动我的应用程序时,java.lang.IllegalArgumentException: column '_id' does not exist我的LogCat 都会出错.我已经创建了这个列'_id',但它仍然会抛出这个.这是我的主要.java:

package com.gantt.shoppinglist;

import android.app.Dialog;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class ShoppingList extends ListActivity {

    private DataHelper DataHelper;
    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        DataHelper = new DataHelper(this);

        Cursor c = (Cursor) DataHelper.selectAll();
        long id = c.getLong(c.getColumnIndex("_id"));
        startManagingCursor(c);

        ListView lv = (ListView) findViewById(android.R.id.list);

        String[] from …
Run Code Online (Sandbox Code Playgroud)

sqlite crash android cursor

21
推荐指数
1
解决办法
1万
查看次数

如何从Android中的SQLite删除所有项目

我想创建一个用户单击按钮的应用程序,并清除SQLite数据库.这是我到目前为止所尝试的:

db.delete(TABLE_NAME, null, null);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

sqlite android sql-delete

21
推荐指数
2
解决办法
7万
查看次数

OperationalError:(OperationalError)无法打开数据库文件无无

尝试使用SQLAlchemy格式化数据库,但是当我在元数据上运行create_all时,出现上述错误.我使用以下路径为用户Tyre77创建了引擎:

engine = create_engine('sqlite:////tyre77/OmniCloud/database.db')
Run Code Online (Sandbox Code Playgroud)

我走过去,在那条路上有一个'database.db'文件,但也许我打错了?

python sqlite terminal sqlalchemy

21
推荐指数
2
解决办法
2万
查看次数

如何在sqlite3中获取包含查询数据的列名?

我在Android中执行时使用sqlite3控制台调试我的应用程序.有没有办法用sql查询结果中的数据显示列名(不仅仅是数据)?

sqlite android console-application

21
推荐指数
1
解决办法
6702
查看次数

当CursorLoader的构造函数不支持时,如何在CursorLoader中使用连接查询

我有两个表与1:n的关系,我正在使用内容提供程序和cursorloader.

如何使用游标加载器进行连接查询?我可以用内容提供程序中的rawSql以某种方式破解它,但是如何在游标加载器构造函数中执行它是超出我的.

非常感谢 !

CursorLoader(Context context,Uri uri,String [] projection,String selection,String [] selectionArgs,String sortOrder)

当Uri只能指向一个表时,如何查询连接

sqlite android

21
推荐指数
1
解决办法
8445
查看次数

可以在单个execSQL查询中指定的SQL变量的限制是多少

我正在努力提高我的android数据库插入速度.我目前正在做的是生成一个字符串,如:

SELECT ? as title, ? as musician_id, ? as album_id, ? as genre
UNION SELECT ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?
UNION SELECT ?, ?, ?, ?
Run Code Online (Sandbox Code Playgroud)

然后执行它

SQLiteDatabase database = //initialized in some way
String insertQuery; // the string of the query above
String [] parameters; // the parameters to use in the insertion.
database.execSQL(insertQuery.toString(), parameters);
Run Code Online (Sandbox Code Playgroud)

当我尝试插入大约2000行时,我收到以下错误:

Caused by: android.database.sqlite.SQLiteException: too many …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

21
推荐指数
2
解决办法
8014
查看次数

"客户"表的数据库结构,每个客户有很多订单,每个订单有很多项

我正在尝试创建一个数据库,其中每个客户有几个订单(每天新订单),每个订单有几个项目.我曾计划创建一个客户表并为每个订单创建一个表,并使用"items"表填充该表.我认为这种方法过于复杂和繁琐,因为订单的数量可以达到数千,我不认为有数千个表是可维护的.您认为适合的结构是什么?任何帮助是极大的赞赏.

对不起,如果这是一个noobish问题,我正在学习编程.这是我第一次尝试数据库设计.

sql database sqlite

21
推荐指数
2
解决办法
6万
查看次数

如何将SQLite 3.7 WAL文件的内容合并到主数据库文件中

随着WAL(预写式日志记录)在SQLite的3.7启用(这是iOS上的7对核心数据的默认值),我该如何合并/提交从-wal文件中的内容返回到主数据库文件?

sqlite wal ios7

21
推荐指数
2
解决办法
1万
查看次数

Android Lollipop 5.0.1 SQLiteLog POSIX错误11 SQLite错误:3850

我在升级应用程序以支持Android Lollipop时遇到问题.该应用程序实现了一个SyncAdapter,它通过内容提供程序在数据库上写入.同时,用户正在浏览应用程序的前端,其中加载程序从数据库中读取相同的数据.加载程序还可以监听数据更改.

现在,如果我在前Lollipop设备上运行该程序,一切正常,没有任何错误输出.

在Lollipop上,我收到以下logcat消息:

11:20:59.344  22341-22376/com.example.com E/SQLiteLog? (10) POSIX Error : 11 SQLite Error : 3850
11:20:59.364  22341-22376/com.example.com E/SQLiteLog? (10) POSIX Error : 11 SQLite Error : 3850
11:20:59.364  22341-22376/com.example.com E/SQLiteLog? (10) POSIX Error : 11 SQLite Error : 3850
11:20:59.364  22341-22376/com.example.com E/SQLiteLog? (10) POSIX Error : 11 SQLite Error : 3850
Run Code Online (Sandbox Code Playgroud)

现在,来自SQLite文档:

(3850)SQLITE_IOERR_LOCK

SQLITE_IOERR_LOCK错误代码是SQLITE_IOERR的扩展错误代码,表示咨询文件锁定逻辑中的I/O错误.通常SQLITE_IOERR_LOCK错误表示获取PENDING锁定时出现问题.但是,它也可以指示Mac上使用的某些专用VFS上的各种锁定错误.一切似乎都在高水平上正常工作(即执行读取和写入)

和:

PENDING锁意味着持有锁的进程想要尽快写入数据库,并且只是等待所有当前的SHARED锁清除,以便它可以获得EXCLUSIVE锁.如果PENDING锁处于活动状态,则不允许对数据库使用新的SHARED锁,但允许继续使用现有的SHARED锁.

我知道SQLite版本已经被Lollipop中的几个主要版本更新了,所以我很容易认为错误是由于我无法隔离的SQLite的一些新行为.

但是,从更高级别的角度看,一切似乎都运行良好(App不会崩溃,执行读写操作,帧率不会下降 - 至少对人眼来说)但我不想忽略这个问题发布应用程序,直到我确定它不会导致数据损坏或麻烦.

也许我对棒棒糖关于锁和多进程数据库访问的一些重要更改缺失了,但我觉得这是一个关于Art/Dalvik域的较低级别的问题,因此必须在NDK上下文中修复.

有没有办法解决这个问题而不分发特定版本的SQLite?是否有任何清单/ SQLite选项来避免错误?

提前致谢

sqlite multithreading android posix android-5.0-lollipop

21
推荐指数
1
解决办法
2743
查看次数