标签: sqlite

Android SQLiteException:绑定或列索引超出范围问题

在android我使用以下语句.

model = dataHelper.rawQuery("SELECT _id, engword, lower(engword) as letter FROM word WHERE letter >= 'a' AND letter < '{' AND engword LIKE '%" + filterText + "%'", new String[ {"_id","engword", "lower(engword) as letter"});
Run Code Online (Sandbox Code Playgroud)

它在扔 android.database.sqlite.SQLiteException: bind or column index out of range: handle 0x132330

我的代码有什么问题?

sqlite android

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

为什么在Android sqlite数据库上没有调用onUpgrade()?

我想在我的android模拟器上安装数据库时升级它.我在我的DbHelper中设置了db版本,它继承自SQLiteOpenHelper到+1.

但是,当我的第一个活动加载时,我实例化我的DbHelper,我希望SQLiteOpenHelper调用onUpgrade,因为db版本现在更新了.但它永远不会被称为.我想知道是否有我遗失的东西.DbHelper使用的版本在哪里存储以与新版本进行比较?为什么这不起作用?

我实际上是将数据库从assets文件夹复制到数据文件夹,而不是重新创建模式.

public class DbHelper extends SQLiteOpenHelper {
    private static final String TAG = "DbHelper";

    static final String DB_NAME = "caddata.sqlite";
    static final int DB_VERSION = 4;

    private static String DB_PATH = "";
    private Context myContext;
    private SQLiteDatabase myDataBase;

    public DbHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        this.myContext = context;

        DB_PATH = "/data/data/"
                + context.getApplicationContext().getPackageName()
                + "/databases/";            
    }

    public DbHelper open() throws SQLException {        
        myDataBase =  getWritableDatabase();

        Log.d(TAG, "DbHelper Opening Version: " +  this.myDataBase.getVersion());
        return this;
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

pdo sqlite找不到驱动程序... php文件没有处理

嗨我收到了尝试通过php文件连接到sqlite时找不到驱动程序错误.我已经设置了777的权限... PHP版本5.2.16,我有模块安装.任何理由为什么它没有找到驱动程序,也php.ini显示扩展pdo.so和pdo_mysql.so安装.

PDO

PDO支持启用了PDO驱动程序mysql

PDO_MYSQL

用于MySQL的PDO驱动程序,客户端库版本5.0.92

try {
    // Connect to the SQLite Database.
    $db = new PDO('sqlite:.subscribers.db');
} catch(Exception $e) {
    die('connection_unsuccessful: ' . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

php sqlite pdo

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

由于sqlite3 gem错误,Heroku部署失败

我刚刚开始阅读Michael Hartl撰写的ruby.railstutorial.org一书,并一直在完成第一章.我正在使用mac book OS X,Terminal和Sublime Text.一切都按计划进行,直到测试部署到Heroku为止.我能够连接到Heroku并运行$ git push herokumaster命令.但是部署失败了:

Installing sqlite3 (1.3.5) with native extensions
       Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
       /usr/local/bin/ruby extconf.rb
       checking for sqlite3.h... no
       sqlite3.h is missing. Try 'port install sqlite3 +universal'
       or 'yum install sqlite-devel' and check your shared library search path (the
       location where your sqlite3 shared library is located).
       *** extconf.rb failed ***
       Could not create Makefile due to some reason, probably lack of
       necessary libraries and/or headers.  Check the …
Run Code Online (Sandbox Code Playgroud)

sqlite deployment gem ruby-on-rails heroku

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

Javascript和Sqlite

我正在使用HTML5和Javascript创建一个应用程序.此应用程序将与Windows和iOS 6(iPad)兼容.我需要使用javascript进行本地数据库访问.这是一个纯粹的脱机ap,不涉及服务器端.

我的困境是 -

  1. W3C不再支持WebSQL.

  2. IndexedDB适用于Firefox,但不适用于iOS6.

  3. 最重要的是,我希望避免HTML5本地数据库存储,因为它会在清除历史记录时清除数据.

我希望在应用程序本地有一个持久的数据库,比如SQLite.是否可以使用纯JavaScript访问SQLite,以便它可以在Windows上以及iPad上使用Firefox.

编辑:该应用程序将不会从iPad(iOS6)中的浏览器运行.而是将应用程序打包到ipa文件中并安装在iPad设备中.

javascript sqlite html5

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

如何使用Async Task执行数据库操作

谷歌搜索解决方案后,我的应用程序在执行数据库操作时遇到困难,建议我使用AsyncTask,以免主线程被阻塞.

我创建了单独的类和扩展的SQLiteOpenHelper并实现了"OnCreate"和"OnUpgrade"方法.但是为了实现AsyncTask,我需要扩展"AsyncTask".现在我的问题是我已经扩展了一个类,我不能为同一个类扩展另一个类.

我的代码是这样的.

import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;

import com.example.project.R;

public class Database  extends SQLiteOpenHelper{

    static final String dbname="Project";
    static final int dbversion=1;

    TableA r=new TableA();


    SQLiteDatabase db;
    private Context Context;
    public Database(Context context) {
        super(context,  dbname, null, dbversion);
        try{
        db=getWritableDatabase();
        // TODO Auto-generated constructor stub
        if (db.isOpen()){

            System.out.println("Database is opened");
        }
            else{


                System.out.println("Database is not opened");
            }

        }
        catch(Exception e){

            Log.e(dbname, e.getMessage());

        }
    }


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

sqlite android android-asynctask

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

node-webkit错误:请手动安装sqlite3包

我工作node-webkit,Sequelizesqlite3.Node运行应用程序没有任何问题,但是当我从node-webkit运行它时,它会抛出这个错误

"Uncaught Error: The dialect sqlite is not supported. (Error: Please install sqlite3 package manually)", source: /Users/mariowise/projects/node-webkit/requies-pos/node_modules/sequelize/lib/sequelize.js (176)
Run Code Online (Sandbox Code Playgroud)

这是我的依赖

"dependencies": {
    "express": "~4.2.0",
    "static-favicon": "~1.0.0",
    "morgan": "~1.0.0",
    "cookie-parser": "~1.0.1",
    "body-parser": "~1.0.0",
    "debug": "~0.7.4",
    "jade": "~1.3.0",
    "nunjucks": "^1.0.5",
    "sqlite3": "~2.1.19",
    "config": "0.4.33",
    "sequelize": "~2.0.0-rc1",
    "sequelize-sqlite": "~1.7.0"
}
Run Code Online (Sandbox Code Playgroud)

sqlite node.js sequelize.js node-webkit

17
推荐指数
1
解决办法
7942
查看次数

来自NuGet的System.Data.SQLite,interop dll没有复制到输出目录

从NuGet安装了System.Data.SQLite Core(x86/x64).它建立时没有任何警告,但投掷System.DllNotFoundExceptionSQLite.Interop.dll.我操纵我的项目将SQLite.Interop.dllNuGet包的目录下的副本复制到输出目录,现在它运行没有异常.

为什么NuGet包没有配置我的项目将相应的interop dll放在输出目录中?似乎它应该能够做到这一点.

我是interop的新手,我继承了这个以前System.Data.SQLite.dll直接由path 引用的代码库.我转而使用NuGet来摆脱有关项目处理器架构与之间不匹配的警告System.Data.SQLite.我正在尝试将所有项目构建为AnyCPU.

.net c# sqlite interop visual-studio

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

sqlalchemy和SQLite共享缓存

:memory:当使用特殊URI打开数据库时,SQLite支持数据库的"共享缓存" (根据sqlite.org):

[T]他可以通过两个或多个数据库连接打开相同的内存数据库,如下所示:

rc = sqlite3_open("file::memory:?cache=shared",&db);

我可以通过利用这个在Python 3.4 URI参数sqlite3.connect():

sqlite3.connect('file::memory:?cache=shared', uri=True)
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法为SQLAlchemy工作:

engine = sqlalchemy.create_engine('sqlite:///:memory:?cache=shared')
engine.connect()
...
TypeError: 'cache' is an invalid keyword argument for this function
Run Code Online (Sandbox Code Playgroud)

有没有办法让SQLAlchemy使用共享缓存?

编辑:
在Python 3.4上,我可以使用creator参数create_engine来解决问题,但问题仍然存在于其他Python版本中:

creator = lambda: sqlite3.connect('file::memory:?cache=shared', uri=True)
engine = sqlalchemy.create_engine('sqlite://', creator=creator)
engine.connect()
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

17
推荐指数
2
解决办法
2195
查看次数

VS2017中的SQLite提供程序

我想在VS2017中使用EF6连接sqlite.我安装了"System.Data.SQLite"nuget包.我还从http://system.data.sqlite.org安装了"sqlite-netFx46-setup-bundle-x86-2015-1.0.104.0.exe" ,但在添加ADO.NET数据实体时我看不到sqlite提供程序.

我错过了什么吗?或以上包不支持VS2017(它说是VS2015)

sqlite entity-framework visual-studio-2017

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