标签: sqlite

sqlite中的参数化startswith查询

我正在为 sqlite3 使用 python 绑定,我正在尝试执行这样的查询

表格1

col1 | col2 
------------
aaaaa|1
aaabb|2
bbbbb|3
Run Code Online (Sandbox Code Playgroud)

测试文件

def get_rows(db, ugc):
    # I want a startswith query.  but want to protect against potential sql injection
    # with the user-generated-content
    return db.execute(
        # Does not work :)
        "SELECT * FROM table1 WHERE col1 LIKE ? + '%'",
        [ugc],
    ).fetchall()
Run Code Online (Sandbox Code Playgroud)

有没有办法安全地做到这一点?

预期行为:

>>> get_rows('aa')
[('aaaaa', 1), ('aaabb', 2)]
Run Code Online (Sandbox Code Playgroud)

python sqlite

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

从 Rails 环境中的表中查询不同组中具有最大 id 的所有记录

我有一个orders带有 idcolor列的表,id 是唯一的列。

|  id  | color |  
| ---- | ----- |  
|   1  | Red   |  
|   2  | Red   |  
|   3  | Green |  
|   4  | Green |  
|   5  | Blue  |  
|   6  | Blue  |  
Run Code Online (Sandbox Code Playgroud)

我希望得到id他们color组中最大的所有行,查询结果应该是

|   2  | Red   |  
|   4  | Green |  
|   6  | Blue  |  
Run Code Online (Sandbox Code Playgroud)

如何使用 Sqlite3(开发环境)和 PostgreSQL 9.3(生产环境)在 rails 环境中查询正确结果

谢谢。

sql sqlite postgresql ruby-on-rails ruby-on-rails-4.1

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

为什么我不能将 ServiceStack OrmLite 中的 IDbTransaction 转换为 DbTransaction?

我正在使用ServiceStack.Ormlite v3.9.71并拥有以下代码段,我在其中打开 Ormlite SQLite 事务,假设我想在代码中其他地方的命令中使用此事务:

var connFactory = new OrmLiteConnectionFactory("ConnectionString", SqliteOrmLiteDialectProvider.Instance)
using (IDbConnection db = connFactory.Open()) // using var doesn't make a difference
using (IDbTransaction tran = db.OpenTransaction()) // using var or even db.BeginTransaction() doesn't make a difference
{
    // I do lots of boring stuff
    ...

    // Somewhere else in the code
    using (var cmd = db.CreateCommand())
    {
        cmd.Transaction = tran; // get an error
    }
}    
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到:

A first chance exception of type 'System.InvalidCastException' occurred in …
Run Code Online (Sandbox Code Playgroud)

c# sqlite ormlite-servicestack

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

基于两列的sql顺序

我有一张表存储产品的ID,价格和可用性.我想首先根据最低价格列出产品,但这些产品应该可用.价格较低但不可用的产品应按照可能价格较高但可用的产品下方的分类顺序列出.

假设这是表中的数据

id | price | availability
8247|16690.0|true
8247|16500.0|true
8247|16000.0|false
8247|15999.0|false
Run Code Online (Sandbox Code Playgroud)

我想要一个查询,它以这种形式返回数据

id | price | availability
8247|16500.0|true
8247|16690.0|true
8247|15999.0|false
8247|16000.0|false
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点 ?

表模式是

sqlite> .schema pricecomparison
CREATE TABLE `pricecomparison` (`availability` VARCHAR , `id` VARCHAR , `price` VARCHAR );
Run Code Online (Sandbox Code Playgroud)

sql sqlite

-1
推荐指数
1
解决办法
65
查看次数

无法创建本地数据库SQLite

我正在尝试在Android SQLite上创建一个本地数据库,但每次我尝试创建我在我的logcat上得到这个异常,为什么会发生这种情况?我已经删除了应用程序并以新的方式运行...

private static final int DATABASE_VERSAO = 1;
public static final String DATABASE_NAME = "STARA_DB";

private static final String TB_CLIENTE = "Table de Clientes";

private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase database;
private static final String TAG = "DBAdapter";

 String TabelaClientes = "CREATE TABLE " 
        + TB_CLIENTE 
        + "(ID_CLIENTE  PRIMARY KEY NOT NULL AUTOINCREMENT, " 
        + "KUNNR TEXT, " 
        + "NAME1 TEXT );";

public ClienteDAO(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private class …
Run Code Online (Sandbox Code Playgroud)

database sqlite android exception localdb

-1
推荐指数
1
解决办法
73
查看次数

Sqlite-更新现有表

我正在尝试sqlite使用更新表execSQL.但是,执行后它清除(清空)我的整个表数据而不是更新某些字段.我的代码是

private void updatedata(String name,String spingender,String cWeight,String spinunit,String htInString,String spingoal,String spinactivity,String spinexercise,String scalorie,String sprotein,String carbohydrate,String sfat) {

        DatabaseHandler helper = new DatabaseHandler(getApplicationContext());
        SQLiteDatabase db = helper.getReadableDatabase();
        System.out.println("in update data "+name + spingender + cWeight);
        String Query = "SELECT * FROM login WHERE name ='"+name+"'";
        Cursor QueryCursor = db.rawQuery(Query,null);

        // there is some record available in the cursor 
        if (QueryCursor.moveToFirst()) {
                 db.execSQL("UPDATE login SET gender='"+spingender+"',weight='"+cWeight+"',userunit='"+spinunit+"',height='"+htInString+"',goal='"+spingoal+"',activeness='"+spinactivity+"',exercise='"+spinexercise+"',calorie='"+scalorie+"',fat='"+sfat+"',carbohydrate='"+carbohydrate+"',protein='"+sprotein+"'");            
        }

        QueryCursor.close();
        db.close();
    }
Run Code Online (Sandbox Code Playgroud)

完整代码

package com.bharatwellness.mainactivities;

import java.io.ByteArrayOutputStream;
import org.json.JSONObject;
import …
Run Code Online (Sandbox Code Playgroud)

database sqlite android android-sqlite

-1
推荐指数
1
解决办法
262
查看次数

SQLite执行更新错误

我正在尝试为我的活动实现executeUpdate查询.但是我收到此错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.techfrk.fetchinboxsms.Database_CustomTransaction.executeUpdate(java.lang.String)' on a null object reference
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public class AddTransaction extends Activity implements OnItemSelectedListener, View.OnClickListener, OnItemClickListener
{
    DateFormat formate = DateFormat.getDateInstance();
    Calendar calendar = Calendar.getInstance();

    ImageButton imgbtn_personal,imgbtn_debitCredit,imgbtn_transferAnother,imgbtn_incomeExpense,calendarimg;

    Button dialogButton;

    Database_CustomTransaction mydb1;

    Boolean personal_flag=true, debitCredit_flag=true, transferAccount=true, incomeExpense=true;

    String transaction_type = "No type selected !";
    public static final String list_prefs = "PreferencesFile";

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_transaction);
        imgbtn_personal = (ImageButton) findViewById(R.id.personal_business);
        imgbtn_debitCredit = (ImageButton) findViewById(R.id.debit_credit_refund);
        imgbtn_transferAnother = (ImageButton) findViewById(R.id.transfer_another_acc);
        imgbtn_incomeExpense = …
Run Code Online (Sandbox Code Playgroud)

sql database sqlite android

-1
推荐指数
1
解决办法
49
查看次数

在for循环中自动创建唯一变量?

我在这里写一下,询问是否有办法让Python在for循环中自动创建新的唯一变量,在下面显示的代码的上下文中:

for row in customerdetails2:
    AA10 = Entry(CustomerEdit)
    AA10.insert(0, row[0])
    AA10.grid(row = editnum, column = 0)
    AA11 = Entry(CustomerEdit)
    AA11.insert(0, row[1])
    AA11.grid(row = editnum, column = 1)
    AA12 = Entry(CustomerEdit)
    AA12.insert(0, row[2])
    AA12.grid(row = editnum, column = 2)
    AA13 = Entry(CustomerEdit)
    AA13.insert(0, row[3])
    AA13.grid(row = editnum, column = 3)
    AA14 = Entry(CustomerEdit)
    AA14.insert(0, row[4])
    AA14.grid(row = editnum, column = 4)
Run Code Online (Sandbox Code Playgroud)

所以基本上对于Python在customerdetails2(它收集信息的数据库)中找到的每一行,我希望它创建一组新的输入字段,但是变量的名称不同,而不是所有的输入字段都被称为'AA10', 'AA11','AA12'等.这可能吗?如果没有,是否有合理的替代方案可以达到相同的效果?抱歉,我仍然是Python的新手,但提前感谢.

python sqlite variables tkinter

-1
推荐指数
1
解决办法
152
查看次数

数据库导致应用程序崩溃

我正在尝试用数据库制作一个简单的应用程序.问题是,由于某种原因,应用程序在启动时崩溃.可悲的是,崩溃日志并没有告诉我很多,除了创建数据库似乎有问题,但也许有人在这里可以理解它.提前致谢!

主要活动

package se.welovecode.wdmmg;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.format.Time;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;


public class MainActivity extends ActionBarActivity {

DBAdapter myDB;
EditText etTransaction;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    openDB();
}

protected void onDestroy(){
    super.onDestroy();
    closeDb();
}

private void openDB(){
    myDB = new DBAdapter(this);
    myDB.open();
}
private void closeDb(){

    myDB.close();
}

public void onClick_AddRecord(View v){
    myDB.insertRow("transaction","item","sum");
}
}
Run Code Online (Sandbox Code Playgroud)

将对DBAdapter

package se.welovecode.wdmmg;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; …
Run Code Online (Sandbox Code Playgroud)

sqlite android

-1
推荐指数
1
解决办法
460
查看次数

Android SQLite:表用户没有名为的列

这是我的SQLiteHandler类代码的一部分。

public class SQLiteHandler extends SQLiteOpenHelper implements DataKeyLists {

    private static final String TAG = SQLiteHandler.class.getSimpleName();

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

    // Database Name
    private static final String DATABASE_NAME = "users";

    // Login table name
    private static final String TABLE_USER = "user";

    // query to create a login table
    private static final String QUERY_CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_USER
            + "("
            + KEY_ID + " INTEGER PRIMARY KEY,"
            + KEY_UID …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

-1
推荐指数
1
解决办法
662
查看次数