标签: sqlite

推荐Sqlite数据库管理器应用程序?

这里列出了很多Sqlite GUI应用程序:

http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

有些似乎不完整,有缺陷,没有维护等等.你有什么建议吗?

sqlite

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

SQLite"IN"子句的参数替换

我试图使用Python中的SQLite参数替换IN子句.这是一个完整的运行示例,演示:

import sqlite3

c = sqlite3.connect(":memory:")
c.execute('CREATE TABLE distro (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)')

for name in 'Ubuntu Fedora Puppy DSL SuSE'.split():
  c.execute('INSERT INTO distro (name) VALUES (?)', [ name ] )

desired_ids = ["1", "2", "5", "47"]
result_set = c.execute('SELECT * FROM distro WHERE id IN (%s)' % (", ".join(desired_ids)), ())
for result in result_set:
  print result
Run Code Online (Sandbox Code Playgroud)

打印出来:

(1,u'Ubuntu')(2,u'Fedora')(5,u'SuSE')

正如文档所述,"[y]你不应该使用Python的字符串操作来组装你的查询,因为这样做是不安全的;它会使你的程序容易受到SQL注入攻击,"我希望使用参数替换.

当我尝试:

result_set = c.execute('SELECT * FROM distro WHERE id IN (?)', [ (", …
Run Code Online (Sandbox Code Playgroud)

python sqlite

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

将Django DB从SQLite迁移到MySQL的最佳方法是什么?

我需要将我的数据库从sqlite迁移到mysql,而各种工具/脚本对我来说太多了,无法轻松找到最安全,最优雅的解决方案.

这对我来说似乎很不错http://djangosnippets.org/snippets/14/但似乎是3年以来获得更新令人担忧..

你能推荐一个已知Django 1.1.1可靠的解决方案吗?

mysql database migration sqlite django

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

SQLite可以处理9000万条记录吗?

或者我应该使用不同的锤子来解决这个问题.

我有一个非常简单的用例来存储数据,实际上是一个稀疏矩阵,我试图将其存储在SQLite数据库中.我创建了一个表:

create TABLE data ( id1 INTEGER KEY, timet INTEGER KEY, value REAL )
Run Code Online (Sandbox Code Playgroud)

我插入了大量数据(每10分钟800个元素,每天45次),一年中大部分时间.(id1,timet)的元组将始终是唯一的.

时间值是自纪元以来的秒数,并且将始终增加.出于所有实际目的,id1是随机整数.虽然可能只有20000个独特的ID.

然后我想访问id1 == someid的所有值或访问timet == sometime的所有元素.在我通过Linux上的C接口使用最新SQLite的测试中,查找其中一个(或此查找的任何变体)大约需要30秒,这对我的用例来说还不够快.

我尝试为数据库定义一个索引,但这减慢了插入到完全不可行的速度(虽然我可能做错了...)

上表导致对任何数据的访问速度非常慢.我的问题是:

  • SQLite完全是错误的工具吗?
  • 我可以定义索引以显着加快速度吗?
  • 我应该使用像HDF5而不是SQL这样的东西吗?

请原谅我对SQL的基本理解!

谢谢

我包含一个代码示例,显示使用索引时插入速度如何减慢到爬行速度.使用'create index'语句,代码需要19分钟才能完成.没有它,它会在18秒内运行.


#include <iostream>
#include <sqlite3.h>

void checkdbres( int res, int expected, const std::string msg ) 
{
  if (res != expected) { std::cerr << msg << std::endl; exit(1); } 
}

int main(int argc, char **argv)
{
  const size_t nRecords = 800*45*30;

  sqlite3      *dbhandle = NULL;
  sqlite3_stmt *pStmt = NULL;
  char statement[512]; …
Run Code Online (Sandbox Code Playgroud)

sql sqlite

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

在Django中聚合save()?

我正在使用带有sqlite后端的Django,写性能是个问题.我可能会在某个阶段毕业到一个"适当的"数据库,但目前我仍然坚持使用sqlite.我认为我的写性能问题可能与我创建大量行的事实有关,并且大概每次我save()锁定,解锁和同步磁盘上的数据库.

如何将大量save()调用聚合到单个数据库操作中?

python sql sqlite django

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

如何查看保存在android数据库(SQLite)中的数据?

我能够从eclipse(从文件浏览器)查看数据库,但我想查看整个细节,我的意思是我插入的数据,我无法访问.我的完整Android安装已在F Drive上完成.所以任何帮助都将受到赞赏.谢谢你

sqlite android

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

sqlite3.OperationalError:无法打开数据库文件

在Django中设置服务器时出现此错误.它是sqlite3,这意味着它应该创建.db文件但它似乎没有这样做.我已经规定SQLite作为后端和绝对文件路径,在哪里放置它,但没有运气.

这是一个错误还是我做错了什么?(只是想,在Ubuntu中指定的绝对文件路径是不同的吗?)

这是我的settings.py文件的开头:

# Django settings for OmniCloud project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': '~/Harold-Server/OmniCloud.db',                      # Or path to database file if using sqlite3.
    'USER': '',                      # Not used with sqlite3.
    'PASSWORD': '',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': …
Run Code Online (Sandbox Code Playgroud)

python database sqlite django django-settings

41
推荐指数
5
解决办法
11万
查看次数

对于EF 6和SQLite 1.0.96.0,"找不到实体框架提供程序"

我知道在这个主题上已经有几个类似的问题了,但是其中很多都来自SQLite的旧版本,据我所知,它并没有完全支持EF 6.我已经尝试过这些线程的无数建议,要么是做错了,要么是必须改变的.

我正在使用VS 2013,面向.NET 4.5.1,并已从system.data.sqlite.org下载页面安装了sqlite-netFx451-setup-bundle-x86-2013-1.0.96.0.exe软件包,以及来自NuGet Manager的System.Data.SQLite EF6包(安装EF6).

下面是我当前的App.config文件(除了我尝试将Version,Culture和Public键变量添加到类型中之外,它几乎没有变化):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.96.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework …
Run Code Online (Sandbox Code Playgroud)

c# sqlite entity-framework entity-framework-6

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

Sqlite group_concat命令

在Sqlite中我可以使用group_concat来做:

1...A
1...B
1...C
2...A
2...B
2...C

1...C,B,A
2...C,B,A
Run Code Online (Sandbox Code Playgroud)

但根据文档,连接的顺序是随机的.

我需要将group_concat的输出排序为

1...A,B,C
2...A,B,C
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

sqlite group-concat

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

android java.lang.IllegalStateException:无法从CursorWindow读取第0行,第0列

我正在开发一个应用程序,它下载一些文件并将它们的文本保存在file_content字段中.文件大小可能从几KB到10 MB不等.该应用程序适用于所有尺寸,同时保存.在long file_content记录上使用select语句时会发生此问题.它给

java.lang.IllegalStateException:无法从CursorWindow读取第0行col 0

何时获取此类行.字段内容大小有限制吗?如果是这样,那么为什么它让我们在检索时保存并给出错误?这是我的代码剪切,提取行:

public String getFileContent(MyFile gc) {
        if(!isDBOpen()) {
            open();
        }
        try {
            String mQuery = "SELECT * FROM " + DBOpenHelper.TABLE_SAVED_FILES + " WHERE " + DBOpenHelper.COLUMN_ID + " = " + gc.id;
            Cursor mCursor = database.rawQuery(mQuery, null);
            if(mCursor.getCount() <= 0) {
                return null;
            }
            if(mCursor.moveToFirst()) {
                return getCursorRowContent(mCursor);
            }
        } catch (Exception e) {
            e.getMessage();
        }
        return null;
    }

    private String getCursorRowContent(Cursor mCursor) throws Exception {
        return mCursor.getString(mCursor.getColumnIndex(DBOpenHelper.COLUMN_FILE_CONTENT));
    }
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?我已经在2到3台设备上进行了测试.

Logcat输出:

01-29 13:41:56.520: W/CursorWindow(4121): …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-cursor

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