标签: sqlite

INSERT SQLite数据最有效的方法

首次安装时,我的应用程序必须缓存从网络获取的数据,并将行插入SQLite数据库.我最终得到了大约700个插件,至少需要15秒.目前我的逻辑如下(伪):

ScrollThroughAllObjects(){
    if(objectDoesNotExist){
        cacheObject();
    }
}

cacheObject(Object ob){
    ContentValues values = new ContentValues();
    values.put(KEY_ID, ob.getId);
    // add lots more values
    return mDb.insert(DATABASE_TABLE, null, values);
}
Run Code Online (Sandbox Code Playgroud)

有没有更有效,更快捷的方式来处理这个插入?

sqlite android

0
推荐指数
1
解决办法
1437
查看次数

Python包装器阻止函数调用?

我编写了一堆辅助函数来包装常用函数,如insert和select.下面包含的只是其中一个包装器...我似乎无法弄清楚它为什么不起作用.

我怀疑它与包装器有关:

from collections import Mapping
import sqlite3

def counter(func):
    def wrapper(*args, **kwargs):
        wrapper.count = wrapper.count + 1
    wrapper.count = 0
    return wrapper

@counter
def insert(val, cursor, table="reuters_word_list", logfile="queries.log"):
    if val:
        if isinstance(val, (basestring, Mapping)):
            val='\"'+val+'\"'
        query = ("insert into %s values (?);" % 'tablename', val)
        if logfile:
            to_logfile(query + '\n', logfile)
        cursor.execute(query)

if __name__ == '__main__':
    connection = sqlite3.connect('andthensome.db')
    cursor = connection.cursor()
    cursor.execute("create table wordlist (word text);")
    insert("foo", cursor)
    connection.commit()
    cursor.execute("select * from wordlist;")
    print cursor.fetchall()
    cursor.close()
Run Code Online (Sandbox Code Playgroud)

python sqlite cursor wrapper

0
推荐指数
1
解决办法
234
查看次数

问题将Rails应用程序(SQLite3)部署到Heroku(PostgreSQL)

关于部署到Heroku的问题,我看到很多帖子,但是我无法找到适合我案例的解决方案.任何输入都将非常感激.

我有一个在本地运行良好的博客应用程序.但是,当我部署到Heroku时,我回来了"我很抱歉,但出了点问题".

我拥有的宝石是:

group :development do
  gem 'sqlite3', '1.3.5'
end

group :production do
  gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)

我采取的步骤是:

git add.
git commit -am "latest update"
git push
git push heroku
rake db:migrate
heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我的SQLite3数据库正在迁移,因为我可以通过rails console找到我最新的博客条目(Blog.find(21)).但是,当Heroku控制台返回时,数据似乎没有迁移到Heroku数据库

"ActiveRecord::RecordNotFound: Couldn't find Blog with id=21."
Run Code Online (Sandbox Code Playgroud)

此外,"heroku日志"发现:

Completed 500 Internal Server Error in 50ms
NoMethod Error (undefined method 'blogs' for nil:NilClass):
  app/controllers/static_pages_controller.rb:8:in 'home'
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的static_pages_controller中可能存在问题,或者它只是返回错误,因为数据库没有正确迁移?

下面是我的static_pages控制器,它在我的本地服务器上运行正常.

class StaticPagesController < ApplicationController
  def home
    if signed_in?
      @blog = current_editor.blogs.build
    end

    @editor = Editor.first
    @blogs = …
Run Code Online (Sandbox Code Playgroud)

sqlite postgresql ruby-on-rails heroku

0
推荐指数
1
解决办法
1206
查看次数

在android中执行SQLite时出现语法错误

我试图使用SQLite数据库在Android本地存储电子邮件.当我第一次调用时context.getWritableDatabase(),数据库尚不存在并且已创建.我在create语句中遇到语法错误...我的代码看起来像这样......

private static final String DATABASE_NAME = "views.db";
    private static final int DATABASE_VERSION = 1;

    public static final String TABLE_VIEWS = "views";

    private static final String KEY_ID = "id";
    private static final String KEY_INDEX = "index";
    private static final String KEY_FROM = "from";
    private static final String KEY_UNREAD = "unread";
    private static final String KEY_SUBJECT = "subject";
    private static final String KEY_BODY = "body";


    // Database creation sql statement
    private static final String CREATE_VIEWS_TABLE = "CREATE TABLE " …
Run Code Online (Sandbox Code Playgroud)

sqlite android

0
推荐指数
1
解决办法
1711
查看次数

Sqlite3:从python附加数据库查询期间删除了错误的表

我从python 2.7.2使用SQLite版本3.3.6.

使用executescript()python脚本执行此查询时:

attach database 'Capacity.db' as WeekAgo;
drop table if exists maximums;
create table maximums (Element TEXT UNIQUE, Score NUMBER , Report TEXT);
insert into maximums (Element, Score, Report) select * from WeekAgo.maximums;
Run Code Online (Sandbox Code Playgroud)

我总是最终删除附加数据库中的WeekAgo.maximums表,并且脚本崩溃,不再存在WeekAgo.maximums.我究竟做错了什么?没有DROP IF EXISTS,一切正常.

python sqlite

0
推荐指数
1
解决办法
478
查看次数

iOS FMDB Sqlite包装器.内存不足

以下代码:

-(NSArray *)getContentsWithContextTypes:(NSArray *)contextTypes
                            contextData:(NSArray *)contextData
{
    __block NSString *query = @"SELECT * FROM Texts_original1 WHERE ";
    [contextData enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSString *attributeName = [self.contextTypeToDBQueryTexts          
                                        objectForKey:contextTypes[idx]];
        query = [query stringByAppendingFormat:@"%@ = \"%@\"", attributeName, obj];
        if(idx != contextData.count - 1)
        {
            query = [query stringByAppendingString:@" AND "];
        }
    }];

    [self.db open];
    FMResultSet *results = [self.db executeQuery:query];
    NSMutableArray *array = [NSMutableArray array];

    while([results next])
    {
        Content *content = [[TextualContent alloc] initWithResults:results];
        [array addObject:content];
    }

    [self.db close];
    return array; …
Run Code Online (Sandbox Code Playgroud)

memory sqlite fmdb ios

0
推荐指数
1
解决办法
3543
查看次数

SQLite错误代码= 1

我正在尝试将一些数据插入SQLite数据库。但是我很想收到错误代码1,表示我的列不存在。有人可以帮我吗,下面是我的代码:

08-17 13:12:46.473: I/Database(13328): sqlite returned: error code = 1, msg = table login has no column named uid
08-17 13:12:46.503: E/Database(13328): Error inserting uid=502e7b90657ab1.86949026 created_at=2012-08-17 12:12:48 email=epaas name=hwheuu
08-17 13:12:46.503: E/Database(13328): android.database.sqlite.SQLiteException: table login has no column named uid: , while compiling: INSERT INTO login(uid, created_at, email, name) VALUES(?, ?, ?, ?);
08-17 13:12:46.503: E/Database(13328):  at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
08-17 13:12:46.503: E/Database(13328):  at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
08-17 13:12:46.503: E/Database(13328):  at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
08-17 13:12:46.503: E/Database(13328):  at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
08-17 13:12:46.503: E/Database(13328):  at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
08-17 …
Run Code Online (Sandbox Code Playgroud)

java database sqlite android

0
推荐指数
1
解决办法
9991
查看次数

SQLiteException:查询数据库时没有这样的列

尝试在sqlite数据库表中查询所有行时,我收到以下异常:

08-24 20:36:48.134: E/AndroidRuntime(351): java.lang.RuntimeException: 
Unable to start activity ComponentInfo{se.p950tes.workouttracker/se.p950tes.workouttracker.SavedActivity}:
android.database.sqlite.SQLiteException: no such column: col_distance: , 
while compiling: SELECT _id, col_date, col_time, col_distance, col_route FROM workout
Run Code Online (Sandbox Code Playgroud)

我还没有更新数据库,这是我第一次在这个设备上安装应用程序,并且它也在模拟器上进行了测试,结果相同.即便如此,我还是尝试了几次版本号,没有任何变化.

这是我的代码.getAll方法抛出异常.

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

public class DatabaseHandler
{
    public static final String DATABASE_NAME = "workout_tracker";

    private static final String KEY_ID       = "_id";
    private static final String KEY_DATE     = "col_date";
    private static final String KEY_TIME     = "col_time";
    private static final String KEY_DISTANCE = …
Run Code Online (Sandbox Code Playgroud)

database sqlite android exception

0
推荐指数
1
解决办法
984
查看次数

在Windows 8 Metro-App中打开extern SQLite-Database?

我使用"Sqlite for Windows Runtime"和sqlite-net(正如http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-所述 - store-apps.aspx)开发Windows 8 Metro-App,只是.如果我想在程序目录中打开数据库是没有问题的:

var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
using (var db = new SQLite.SQLiteConnection(dbPath)) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是当我想使用这样的extern路径时:

var dbPath = "C:\\Users\\xxxxxx\\db.sqlite";
Run Code Online (Sandbox Code Playgroud)

然后"无法打开数据库文件"出现错误.为什么?在这里我使用C#,通常我使用C++,但对于这个问题,我确信它没关系;)

c# c++ sqlite microsoft-metro windows-8

0
推荐指数
1
解决办法
2557
查看次数

在android Activity(Android SQLite数据库)中导入.SQLite文件

我已经成功创建了一个数据库程序.基本上我正在处理一个小复杂的数据库,所以需要在SQLITE MANAGER中创建数据库并使用我的android代码导入/链接该数据库.请建议我做这个教程.或任何其他帮助我的代码.谢谢

这是我的数据库代码现在我要导入mYdataBase.sqlite文件.

public class DatabaseHandler extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "contactsManager";
    private static final String TABLE_CONTACTS = "contacts";
    private static final String KEY_ID = "id";
    private static final String KEY_NAME = "name";
    private static final String KEY_PH_NO = "phone_number";

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

    // Creating Tables
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + …
Run Code Online (Sandbox Code Playgroud)

database sqlite android

0
推荐指数
1
解决办法
6820
查看次数