标签: sqlite

Pycharm环境与命令行不同

我有一个问题,让我的Pycharm环境与我在命令行上的环境相匹配.我最近删除了python并通过家庭酿造重新安装它.我的路径中的python指向/usr/local/bin/python我添加PATH=/usr/local/bin:$PATH到我的.bash_profile文件的开头,我可以在命令行的interperter中执行以下代码.但是,当我添加/usr/local/bin/python项目python解释器并运行以下代码时,我得到属性错误.任何人都可以了解我如何让Pycharm使用与命令行相同的环境?

import sqlite3
db = "mydb.db"
conn = sqlite3.connect(db)
conn.enable_load_extension(True)
Run Code Online (Sandbox Code Playgroud)

AttributeError:'sqlite3.Connection'对象没有属性'enable_load_extension'

python sqlite pycharm python-2.7 osx-mavericks

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

与SQLite中的HEX()相反?

我有这个简单的查询,返回一堆guid作为十六进制字符串:

SELECT HEX(guid) FROM table;
Run Code Online (Sandbox Code Playgroud)

其中一个是例如43F4124307108902B7A919F4D4D0770D.然后想象我想用这个guid获取记录,所以我写了一个这样的查询:

SELECT * FROM table WHERE guid = '43F4124307108902B7A919F4D4D0770D';
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为字符串直接被解释为blob而不是转换为它的十六进制值.我看了这里,但找不到任何看起来像是一个十六进制字符串并将其转换为blob的方法.

sqlite hex

16
推荐指数
1
解决办法
7239
查看次数

警告:不要硬编码"/ data /"; 请改用Context.getFilesDir().getPath()

我开发了一个应用程序,我将数据库从assets文件夹复制到我的硬编码路径.所以日食给了我警告:

Do not hardcode "/data/"; use Context.getFilesDir().getPath() instead
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索并找到答案使用:

Context.getFilesDir().getPath();
Run Code Online (Sandbox Code Playgroud)

并且硬编码不适用于每个设备,有些可能会出错或无法正常工作.但通过实施上述我得到错误.

我的代码如下:

private final Context myContext;
Run Code Online (Sandbox Code Playgroud)

在这里得到警告

private static String DB_PATH =  "/data/data/com.example.abc/databases/";


private static final int DATABASE_VERSION = 1; 
private static final String DATABASE_NAME = "exampledb.sqlite";
static SQLiteDatabase sqliteDataBase;

public DataBaseHelperClass(Context context) {       
    super(context, DATABASE_NAME, null ,DATABASE_VERSION);
    this.myContext = context;
}

public void createDataBase() throws IOException{
    boolean databaseExist = checkDataBase();

    if(databaseExist){
        this.getWritableDatabase();
    }else{
        this.getReadableDatabase();         
        copyDataBase(); 
    }
} 


public boolean checkDataBase(){
    File databaseFile = new File(DB_PATH + DATABASE_NAME);
    return databaseFile.exists(); …
Run Code Online (Sandbox Code Playgroud)

database sqlite android warnings android-sqlite

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

在iOS中存储任意键/值

有没有办法在iOS中存储任意键/值,我知道我可以创建在SQLite中存储JSON键值的列,但我想要更高效的东西,所以我只能从查询记录中获取所需的值.

如果我可以在没有外部数据库(如LevelDB)的情况下执行此操作,但如果您认为这可能是唯一的方法,请告诉我您更喜欢哪一个.

更新:

数据将包含从服务器检索的文章(长html文章,标题和日期以及其他未定义的数据)和其他元数据,每次用户打开应用程序时都会检索并显示它.(这就是为什么NSUserDefaults不适用于这个用例)

database sqlite core-data ios

16
推荐指数
1
解决办法
3753
查看次数

从命令行运行Sqlite3脚本

我正在编写一个shell脚本来scp一个项目,其中一部分涉及在我的数据库中传输一些重要的表.

我在文件中存储了以下内容SQLTableTransfer:

.o MyTable1.sql;
.dump MyTable1;

.o MyTable2.sql;
.dump MyTable2;

.o MyTable3.sql;
.dump MyTable3;
Run Code Online (Sandbox Code Playgroud)

并抓住机会

$ sqlite3 SQLTableTransfer
Run Code Online (Sandbox Code Playgroud)

但这只是打开了Sqlite3 shell.从命令行运行这样的脚本的正确方法是什么?

sql sqlite bash shell

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

尝试重新打开已关闭的对象sqlitedatabase

我有一个databaseHandler.我需要计算表中的行数.应用程序因此错误而崩溃:android attempt to reopen an already-closed object sqlitedatabase.
我只是在活动中使用此代码:

db.getContactsCount();
Run Code Online (Sandbox Code Playgroud)

但应用程序崩溃了.另外我想重置表(删除表行).我添加了以下方法:

public void deleteTable() {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete("contacts", null, null);
    }
Run Code Online (Sandbox Code Playgroud)

它运作良好,但我不能使用这个:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

    // Create tables again
    onCreate(db);
}
Run Code Online (Sandbox Code Playgroud)

这是databasehandler:

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

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

Android SQLIte错误:无法从CursorWindow读取第0行第1列

我正在使用我使用sqlitebrowser创建的预先填充的slqite数据库.

我已将数据库文件(它似乎没有扩展名)放入我的资源文件夹中.

我正在使用每个人似乎都在使用的标准databasehelper类.

 05-09 13:04:55.746      894-894/com.myapp.myappname E/CursorWindow? Failed to read row 0, column 1 from a CursorWindow which has 19 rows, 1 columns.
05-09 13:04:55.766      894-894/com.myapp.myappname D/AndroidRuntime? Shutting down VM
05-09 13:04:55.766      894-894/com.myapp.myappname W/dalvikvm? threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-09 13:04:55.876      894-894/com.myapp.myappname E/AndroidRuntime? FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.myappname/com.myapp.myappname.MainActivity}: java.lang.IllegalStateException: Couldn't read row 0, col 1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

如何在android API 19(KitKat)中保留权限?

在我的应用程序中,我将图像路径存储在我的SQlite数据库中以供进一步使用.我得到的路径是

content://com.android.providers.media.documents/document/image%3A71964
Run Code Online (Sandbox Code Playgroud)

当我从数据库中检索此路径并尝试从该路径中检索图像时,机器人抛出

java.lang.SecurityException: Permission Denial: opening provider
com.android.providers.media.MediaDocumentsProvider 
from ProcessRecord{42c84ec8 23911:com.gots.gb/u0a248} (pid=23911, uid=10248) 
requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
Run Code Online (Sandbox Code Playgroud)

根据https://developer.android.com/guide/topics/providers/document-provider.html#permissions我需要通过添加以下代码来保留权限

final int takeFlags = intent.getFlags()
        & (Intent.FLAG_GRANT_READ_URI_PERMISSION
        | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// Check for the freshest data.
getContentResolver().takePersistableUriPermission(uri, takeFlags);
Run Code Online (Sandbox Code Playgroud)

当我将此代码添加到我的ImageAdapter类时,它扩展了BaseAdapter android抛出

08-21 02:14:38.530: W/System.err(24452): java.lang.SecurityException:
No permission grant found for UID 10248 and Uri 
content://com.android.providers.media.documents/document/image:71964
Run Code Online (Sandbox Code Playgroud)

这是我的ImageAdapter代码的相关部分

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView ;


    if (convertView == null){
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, …
Run Code Online (Sandbox Code Playgroud)

java sqlite android android-4.4-kitkat storage-access-framework

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

使用shoulda匹配器无法获得唯一性验证测试通过

我的avatar_parts_spec.rb中有一个shoulda匹配器,我无法通过它:

测试:

require 'rails_helper'

RSpec.describe AvatarPart, :type => :model do
  it { should validate_presence_of(:name) }
  it { should validate_presence_of(:type) }
  it { should validate_uniqueness_of(:name).case_insensitive }
  it { should belong_to(:avatar) }
end
Run Code Online (Sandbox Code Playgroud)

模型:

class AvatarPart < ActiveRecord::Base
  attr_accessible :name, :type, :avatar_id

  belongs_to :avatar

  validates_uniqueness_of :name, case_sensitive: false
  validates :name, :type, presence: true, allow_blank: false
end
Run Code Online (Sandbox Code Playgroud)

移民:

class CreateAvatarParts < ActiveRecord::Migration
  def change
    create_table :avatar_parts do |t|
      t.string :name, null: false
      t.string :type, null: false
      t.integer :avatar_id      

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

错误: …

ruby sqlite ruby-on-rails shoulda ruby-on-rails-3

16
推荐指数
2
解决办法
9680
查看次数

如何在Model上执行删除操作?

来自Ruby on Rails体验,您可以在其中加载rails控制台以删除用户或所有用户.我是Laravel 5的新手,我正在寻找类似于删除sqlite3数据库中已有用户的东西.

我看到人们在谈论User::find(1)->delete();删除用户的位置,但是你把它放在哪里然后运行?是否有控制台来执行删除任务?我想知道如何在不删除表的情况下删除用户.我不想软删除.

php sqlite laravel eloquent laravel-5

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