标签: sqlite

Android SQLiteOpenHelper无法打开数据库文件

我知道这个话题之前已被讨论过了.但我无法找到问题的解决方案,所以我会再问一次.我有创建数据库的问题.我复制了SQLiteOpenHelper的实现:

public class DBCreator extends SQLiteOpenHelper 
{
    private static final String DATABASE_NAME = "servision.db";
    private static final int DATABASE_VERSION = 1;


    private static final String INFO_TABLE ="create table INFO(key text,value text);";
    public static final String GATEWAYS_TABLE = "GATEWAYS";

    // Table name
    public static final String TABLE = "events";

    // Columns
    public static final String TIME = "time";
    public static final String TITLE = "title";

    public DBCreator(Context context) 
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try …
Run Code Online (Sandbox Code Playgroud)

sqlite android file

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

原始SQLite游标上的registerContentObserver()

我见过的所有例子registerContentObserver()都是通过ContentProvider界面实现的.但Cursor有一个registerContentObserver()调用,所以我想也许Android人们已经把一些深刻的魔法放在一起,SQLite当活动结果集中的一行改变时,它允许在游标上获得更新.我做错了,或者没有这样的魔法.这是我正在使用的代码,期望是当我点击按钮更新第1行中的值时,我会得到一个onChange()回调.有任何想法吗?

public class MainActivity extends Activity {
    private static final String DATABASE_NAME = "test.db";
    public static final String TAG = "dbtest";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button make = (Button)findViewById(R.id.btn_make_record);
        make.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                MyOpenHelper oh = new MyOpenHelper(v.getContext());
                SQLiteDatabase wdb = oh.getWritableDatabase();
                ContentValues cv = new ContentValues();
                cv.put("value", String.valueOf(System.currentTimeMillis()));
                if (wdb.insert(MyOpenHelper.TABLE_NAME, null, cv) …
Run Code Online (Sandbox Code Playgroud)

database sqlite android android-contentresolver

16
推荐指数
2
解决办法
9097
查看次数

如何决定直接数据库访问和内容提供商?

我正在编写一个由业务逻辑和UI部分组成的应用程序.BL和UI都存储和访问/修改了大量数据.在大多数情况下,存储数据的更改应立即由UI反映.

我如何决定是否应该使用直接数据库访问?内容提供商?

我已经做了关于这个问题(一些阅读1,2),我理解这两个选项之间的差异.

请分享您对问题其他方面的看法,例如性能,代码开发难度和可维护性等.

sqlite android android-contentprovider

16
推荐指数
3
解决办法
4749
查看次数

SQLite全文搜索相关性排名

我正在使用sqlite3的fts4扩展来启用全文索引和文本数据搜索.它运作良好,但我注意到结果根本没有相关性.我想我已经习惯了Lucene.我已经看到了一些使用matchinfo()结果编写自定义排名方法的简短建议,但我不清楚这是如何完成的,或者是否有任何复杂的例子.别人怎么处理这个?

sqlite indexing search full-text-search

16
推荐指数
2
解决办法
6101
查看次数

Sqlite使用命令行

Sqlite有点令人沮丧.每次运行命令时,我都无法使用向上向下的向右箭头来检索以前键入的命令.有没有办法实现这个?

另一个问题:我有下表

CREATE TABLE resource (
    resourceID INTEGER PRIMARY KEY AUTOINCREMENT,
    resourceType STRING,
    userID INTEGER DEFAULT -1
);
Run Code Online (Sandbox Code Playgroud)

我插入如下:

insert into resource values(null, "razor");
Run Code Online (Sandbox Code Playgroud)

但它不允许我这样做,因为我只插入了2列而没有为userID列指定任何内容.但我认为DEFAULT的意思是如果没有插入任何内容,则将值默认为-1.我在这里错过了什么吗?

sql sqlite

16
推荐指数
4
解决办法
8860
查看次数

如何缩小sqlite数据库?

完成将我的所有数据存储到sqlite后,它已经达到14 MB.这就是为什么我担心有些人无法从连接缓慢区域下载我的应用程序.有没有办法缩小sqlite数据库?

java sqlite android

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

android,如何在sqlitedatabase中执行sql文件

我有"food_db.sql"文件存储在/ res/raw文件夹中,它有大量的"插入".

我的问题是如何执行该文件并将数据导入我的Android应用程序中的sqlite数据库?

这是我的数据库代码.任何建议?

private static class DbHelper extends SQLiteOpenHelper{

    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                KEY_NAME + " TEXT NOT NULL, " + 
                KEY_HOTNESS + " TEXT NOT NULL);");
                    // how do i exec the sql file and get the data into this DB table?
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

sql database sqlite android

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

在sqlite3语句中绑定'unsigned long'(uint64)?C++

我正在使用sqlite.org上提供的sqlite3库.

我有一些我想要存储在数据库中的unsigned longs.我不想自己构建查询并将其保持开放以进行某种注入(无论是否是偶然的).因此,我正在使用这些sqlite_bind_*函数来"清理"我的参数.

问题是对于无符号长整数,只有整数没有函数类型.

int sqlite3_bind_int(sqlite3_stmt*, int, int);

int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);

如果我无法以无符号方式存储它们,我肯定会有数字会溢出.

我自己需要自己管理吗?(即在插入数据库之前从db中选择或转换为signed类型后转换为无符号类型)

如果我自己必须自己管理,当比较真的意味着在无符号范围内时,如何做一些存储为有符号长整数的比较查询?

查看转换后的INTEGER数据类型,可以认为无符号长整数可以毫无问题地表示.

如果有其他可用解决方案,请赐教!谢谢!

c++ sqlite bind unsigned-integer

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

如何使用sequel pro连接到sqlite数据库

嗨我安装了QLite Pro,但我无法连接到本地SQLite文件db我该怎么办?

要填写的字段是:

Name:
Host: requeire
UserName:
PassWord:
Database:
Port:
Run Code Online (Sandbox Code Playgroud)

sqlite

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

android sqlite查询多个在哪里

这是我目前的sqlite代码:

Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME + 
                " where " + KEY_ownerID + " = ? ", new String[] { ownerID});
Run Code Online (Sandbox Code Playgroud)

它工作正常,但当我尝试添加多个这样的地方:

Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME + 
                " where " + KEY_ownerID + " = ?, " + KEY_partnerID + " = ?, " + KEY_advertiserID + " = ?, " + KEY_chefID + " = ?", new String[] { ownerID, partnerID, advertiserID, chefID }); …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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