标签: sqlite

更改SQLite默认设置

我们知道什么时候.mode column让我看到像列.headers on这样的表格,我们可以看到表格的标题.但是我想知道是否有任何方法可以进行两种默认设置?

做一些修改sqlite的源代码?? 或者是否有这些设置的配置文件?

sqlite

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

Android数据库事务

我创建了一个数据库.我想做交易.SaveCustomer()包含多个语句,以便Customer, CustomerControl, Profile, Payment在那时将记录插入表中.

当用户调用 SaveCustomer()方法时,该数据将转到这4个表.所以我该如何进行交易?如果一个表插入失败,则需要回滚所有内容.例如,当第3个表插入记录时出现错误,那么还需要回滚前两个表的插入记录.

看我的代码:

public void saveCustomer(){
    DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(RetailerOrderKeyActivity.this);
    dbAdapter.openDataBase();
    ContentValues initialValues = new ContentValues();
    initialValues.put("CustomerName",customer.getName());
    initialValues.put("Address",customer.getAddress());
    initialValues.put("CustomerPID",strPID);
    initialValues.put("Date",strDateOnly);
    long n = dbAdapter.insertRecordsInDB("Customer", null, initialValues);

}
Run Code Online (Sandbox Code Playgroud)

同样其他声明也在那里.

DBAdpter代码是:

public long insertRecordsInDB(String tableName, String nullColumnHack,ContentValues initialValues) {
    long n =-1;
    try {
        myDataBase.beginTransaction();
        n = myDataBase.insert(tableName, nullColumnHack, initialValues);

        myDataBase.endTransaction();
        myDataBase.setTransactionSuccessful();
    } catch (Exception e) {
        // how to do the rollback 
        e.printStackTrace();
    }

    return n;
}
Run Code Online (Sandbox Code Playgroud)

这是完整的代码:

public class DBAdapter extends …
Run Code Online (Sandbox Code Playgroud)

sqlite android transactions

82
推荐指数
3
解决办法
9万
查看次数

System.Data.SQLite Close()不释放数据库文件

在尝试删除文件之前,我在关闭数据库时遇到问题.代码就是这样

 myconnection.Close();    
 File.Delete(filename);
Run Code Online (Sandbox Code Playgroud)

并且Delete抛出了一个异常,即该文件仍在使用中.几分钟后我在调试器中重新尝试了Delete(),所以这不是时间问题.

我有事务代码,但在Close()调用之前它根本不运行.所以我很确定这不是一个开放的交易.打开和关闭之间的sql命令只是选择.

ProcMon显示我的程序和我的防病毒软件查看数据库文件.它没有显示我的程序在close()之后释放db文件.

Visual Studio 2010,C#,System.Data.SQLite版本1.0.77.0,Win7

我看到一个两岁的bug就像这样,但更新日志说它已修复.

还有什么我可以检查的吗?有没有办法获得任何打开的命令或事务的列表?


新的工作代码:

 db.Close();
 GC.Collect();   // yes, really release the db

 bool worked = false;
 int tries = 1;
 while ((tries < 4) && (!worked))
 {
    try
    {
       Thread.Sleep(tries * 100);
       File.Delete(filename);
       worked = true;
    }
    catch (IOException e)   // delete only throws this on locking
    {
       tries++;
    }
 }
 if (!worked)
    throw new IOException("Unable to close file" + filename);
Run Code Online (Sandbox Code Playgroud)

sqlite system.data.sqlite

82
推荐指数
9
解决办法
4万
查看次数

rawQuery(query,selectionArgs)

我想使用select查询从表中检索数据.我发现,rawQuery(query, selectionArgs)方法SQLiteDatabase类检索数据.但我不知道该怎么queryselectionArgs应该传递给rawQuery方法?

sqlite android

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

无法在rails上的ruby上加载这样的文件--sqlite3/sqlite3_native(LoadError)

当我尝试在Ruby 2.0.0上使用Rails 4.0.0设置基本安装和启动服务器时,我面临以下错误消息.

/usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
    from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>'
    from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
    from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
    from /home/penchal/new/site/config/application.rb:7:in `<top (required)>'
    from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
    from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
    from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
    from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)

如何避免此错误消息并继续进行?

sqlite ruby-on-rails

82
推荐指数
6
解决办法
8万
查看次数

执行SQLite脚本

我使用这个命令启动sqlite3版本3.7.7,unix 11.4.2:

sqlite3 auction.db
Run Code Online (Sandbox Code Playgroud)

其中auction.db尚未创建.

sqlite> auction.db < create.sql;
Run Code Online (Sandbox Code Playgroud)

给我这个错误: near "auction": syntax error

我该如何运行脚本?

sqlite

81
推荐指数
6
解决办法
9万
查看次数

如何更新表中的行或如果它不存在则插入它?

我有下表的柜台:

CREATE TABLE cache (
    key text PRIMARY KEY,
    generation int
);
Run Code Online (Sandbox Code Playgroud)

我想增加其中一个计数器,或者如果相应的行还不存在则将其设置为零.有没有办法在标准SQL中没有并发问题的情况下执行此操作?该操作有时是交易的一部分,有时是分开的.

如果可能的话,SQL必须在SQLite,PostgreSQL和MySQL上不加修改地运行.

搜索产生了一些想法,这些想法要么遇到并发问题,要么特定于数据库:

  • 尝试换INSERT行,UPDATE如果出现错误.不幸的是,INSERT中止当前事务的错误.

  • UPDATE行,如果没有修改行,则为INSERT新行.

  • MySQL有一个ON DUPLICATE KEY UPDATE条款.

编辑:感谢所有的好评.看起来保罗是对的,并没有单一,便携的方式来做到这一点.这对我来说非常令人惊讶,因为它听起来像是一个非常基本的操作.

mysql sql sqlite postgresql upsert

80
推荐指数
6
解决办法
13万
查看次数

如何通过Sql Query获取Sqlite中表的第一行/第一行

我需要在Sqlite数据库中获取表的第一行/第一行.

但我的程序为我正在使用的查询抛出一个SQLException"Sqlite语法错误:'1'附近的语法错误":

SELECT TOP 1 * 
FROM SAMPLE_TABLE
Run Code Online (Sandbox Code Playgroud)

我猜这是一种特别针对MS SQL SERVER和MS ACCESS的语法.现在我正在使用.

SELECT *
FROM SAMPLE_TABLE
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

这个问题的最佳解决方案是什么?

sql sqlite

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

是否可以从JavaScript访问SQLite数据库?

我有一组HTML文件和一个SQLite数据库,我想使用file:// scheme从浏览器访问它.是否可以使用JavaScript访问数据库并创建查询(和表)?

html javascript database sqlite

80
推荐指数
4
解决办法
20万
查看次数

SQlite:选择进入?

我不确定我是否可以使用select into从另一个表导入数据,如下所示:

select * into
  bookmark1 
from bookmark;    
Run Code Online (Sandbox Code Playgroud)

SQlite不支持这种语法吗?还有其他选择吗?

sql sqlite

79
推荐指数
4
解决办法
4万
查看次数