标签: sqlite

SQLite3和多个进程

当多个进程访问单个SQLite数据库文件时,如何确保正确性?

c sqlite concurrency

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

核心数据存储损坏

我的iPhone应用程序的少数客户正在经历核心数据存储损坏(我假设是这样,因为错误是"无法保存到数据存储:操作无法完成.(可可错误259.)")

有没有其他人经历过这种商店腐败?我很担心,因为我的目标是很快推出执行模式迁移的更新,我担心这会暴露更多的问题.

我假设Core Data/SQLlite API使用原子操作并且不受损坏,除非底层文件系统遇到损坏.

有没有办法减少/防止腐败,以及重现腐败的方法,所以我可以测试这个(到目前为止我没有成功).

编辑:

还得到此错误:"/var/mobile/Applications//Documents/foo.sqlite中的数据库已损坏.SQLite错误代码11,数据库磁盘映像格式错误."

sqlite iphone core-data

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

SQLite中有任何保留字吗?

关于保留字的三个问题:

  1. SQLite中有任何保留字吗?如果是这样,他们是什么?

  2. 如果有保留字,是否使用其中一个作为列或表名仍然用括号括起来的正确语法?例如,[User]还是[Name]

  3. 使用ADO.NET查询SQLite数据库时,使用其他SQL语言(例如SQLServer)保留但在SQLite中没有保留的单词是否有任何影响?

sqlite ado.net

19
推荐指数
1
解决办法
8889
查看次数

如何在SQLite中创建序列?

我在sqlite中创建了一个表.有两个领域:pk_categoryid,category_name.我想从用户端只输入一个值.那么,我该如何创建一个序列呢?

sqlite

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

Android:我可以为多个数据库文件使用一个SQLiteOpenHelper类吗?

我的应用程序使用两个数据库(单独的文件)为了处理这些数据库,我创建了两个扩展SQLiteOpenHelper的Helper类,每个数据库一个.

我现在要添加第三个数据库并想知道是否需要创建另一个Helper类(如果我使用了第4个和第5个数据库,我还需要更多Helper类),或者我可以使用相同的Helper类进行多个数据库?

我在尝试使用一个Helper类时遇到的问题是我无法看到如何将各个数据库文件的名称传递给Helper.目前,数据库的名称被硬编码为每个Helper类的静态字段,但是如果我只有一个Helper类,我需要能够在创建单独的Helper时将不同的名称传递给构造函数对象; 问题是SQLiteOpenHelper构造函数似乎只是由Android调用,只有一个参数:Context.

database sqlite android class-design

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

如何在Android SQLite数据库上制作AUTO_INCREMENT?

嘿我想创建一个带有AUTO_INCREMENT列的数据库.但我不知道如何解析方法插入中的值.我只是不知道要解析一个AUTO_INCREMENT参数,我解析了1应该是auto_increment,但我知道它不是我应该解析的.

这是CallDatHelper.java类,我在其中声明方法insert,以及创建数据库的方法.

package com.psyhclo;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

public class CallDataHelper {

private static final String DATABASE_NAME = "calls.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "contact_data";

private Context context;
private SQLiteDatabase db;

public CallDataHelper(Context context) {
    this.context = context;
    OpenHelper openHelper = new OpenHelper(this.context);
    this.db = openHelper.getWritableDatabase();
}

public boolean insert(Integer cId, String cName, String numType,
        String cNum, String …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

如何在不将格式化为列表的情况下将sqlite导出到Python中的CSV?

这是我目前拥有的:

conn = sqlite3.connect(dbfile)
conn.text_factory = str ## my current (failed) attempt to resolve this
cur = conn.cursor()
data = cur.execute("SELECT * FROM mytable")

f = open('output.csv', 'w')
print >> f, "Column1, Column2, Column3, Etc."
for row in data:
  print >> f, row
f.close()
Run Code Online (Sandbox Code Playgroud)

它创建一个CSV文件,其输出如下所示:

Column1, Column2, Column3, Etc.
(1, u'2011-05-05 23:42:29',298776684,1448052234,463564768,-1130996322, None, u'2011-05-06 04:44:41')
Run Code Online (Sandbox Code Playgroud)

我不希望行在括号中,也不希望在字符串之前有引号和'u'.如何在没有所有这些的情况下将行写入csv?谢谢,

python csv sqlite export-to-csv

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

如何在Ionic Framework中使用ngCordova s​​qlite服务和Cordova-SQLitePlugin?

我一直在尝试将sqlite合并到一个简单的Ionic应用程序中,这是我一直关注的过程:

 ionic start myApp sidemenu
Run Code Online (Sandbox Code Playgroud)

然后我安装sqlite插件:

ionic plugin add https://github.com/brodysoft/Cordova-SQLitePlugin
Run Code Online (Sandbox Code Playgroud)

和ngCordova

bower install ngCordova
Run Code Online (Sandbox Code Playgroud)

这给了我以下选项:无法为角度找到合适的版本,请选择一个:1)角度#1.2.0,解析为1.2.0并且是ngCordova#0.1.4-alpha要求2)angular#> = 1.0.8解析为1.2.0并且是angular-ui-router#0.2.10要求的角度#1.2.25,其分辨率为1.2.25并且是角度动画#1.2.25,angular-sanitize所需要的#1.2.25 4)角度#~1.2.17,分辨率为1.2.25并且是离子#1.0.0-beta.13所需的选择!把它坚持到bower.json

我选择了选项3),我将脚本包含在文件中,如下所示:

<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后我在搜索视图中添加了一个控制器:

.controller('SearchCtrl', function ($scope, $cordovaSQLite){
  console.log('Test');
   var db = $cordovaSQLite.openDB({ name: "my.db" });

        // for opening a background db:
        var db = $cordovaSQLite.openDB({ name: "my.db", bgType: 1 });

        $scope.execute = function() {
          console.log('Test');
          var query = "INSERT INTO test_table (data, data_num) VALUES (?,?)";
          $cordovaSQLite.execute(db, query, ["test", 100]).then(function(res) {
            console.log("insertId: " + …
Run Code Online (Sandbox Code Playgroud)

sqlite angularjs cordova ionic-framework

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

Python3 - 有没有办法在一个非常大的SQlite表上逐行迭代而不将整个表加载到本地内存中?

我有一个非常大的表,有250,000多行,其中很多都在其中一列中包含一个大的文本块.目前它的容量为2.7GB,预计至少增长十倍.我需要在表的每一行上执行特定于python的操作,但是一次只需要访问一行.

现在我的代码看起来像这样:

c.execute('SELECT * FROM big_table') 
table = c.fetchall()
for row in table:
    do_stuff_with_row
Run Code Online (Sandbox Code Playgroud)

当表格较小时,这种工作正常,但是当我尝试运行它时,表格现在比我可用的ram和python挂起的要大.是否有更好的(更有效率的)方法在整个表上逐行迭代?

python sqlite

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

使用Flask的SQLAlchemy会话引发"在线程中创建的SQLite对象只能在同一个线程中使用"

我有一个Flask视图,它使用SQLAlchemy查询和显示一些博客文章.我正在使用mod_wsgi运行我的应用程序.此视图在我第一次进入页面时起作用,但下次返回500错误.回溯显示错误ProgrammingError: SQLite objects created in a thread can only be used in that same thread. 为什么我收到此错误以及如何解决?

views.py

engine = create_engine('sqlite:////var/www/homepage/blog.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()

@app.route('/blog')
@app.route('/blog.html')
def blog():
    entrys = session.query(Entry).order_by(desc(Entry.timestamp)).all()
    return render_template('blog.html', blog_entrys = entrys)
Run Code Online (Sandbox Code Playgroud)

models.py:

class Entry(Base):
    __tablename__ = 'entry'

    id = Column(Integer, primary_key = True)

    title = Column(String(100), nullable = False)
    body = Column(String, nullable = False)
    timestamp = Column(DateTime, nullable = False)
    featured = Column(Boolean, nullable = …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy flask

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