标签: sqlite

在Python循环中将列添加到SQLite表

我为科学程序(Python)创建了一个数据库(使用sqlite3)。该程序的建立使循环逐渐建立数据库。因此,问题在于添加带有循环的列。我举了一个例子。它表明问题出在定义新列名(Name1)的变量上。

import sqlite3
import os

conn=sqlite3.connect(':memory:')
c=conn.cursor()

c.execute('''CREATE TABLE TableName (Var1 REAL, Var2 REAL)''')

Name1='Test1'
c.execute('''ALTER TABLE TableName ADD COLUMN "+Name1+" INTEGER''')
Name1='Test2'
c.execute('''ALTER TABLE TableName ADD COLUMN "+Name1+" INTEGER''')
Run Code Online (Sandbox Code Playgroud)

请问有人可以解决这个问题吗?感谢,并有一个愉快的一天。

python sqlite

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

Android SQLite:快速插入/更新

在我的Android应用程序中,我使用编译语句来快速插入行:

insert = db.compileStatement(
                    "INSERT INTO foo (id, aaa, bbb, ccc) " +
                    "VALUES (?,?,?,?)");
Run Code Online (Sandbox Code Playgroud)

这工作正常且非常快.但是当已经foo有了id,我收到以下异常:

column id is not unique (code 19)
Run Code Online (Sandbox Code Playgroud)

覆盖现有行的正确方法是什么?

java sqlite android

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

在greenDAO中使用WHERE或OR选择多个元素的简单解决方案?

我有一个主键列表,我需要从greendao数据库中获取这些元素。

最简单的方法是逐个查询每个对象并将其插入列表中:

public List<MyObject> getMyObjectByIds(List<String> ids) {
    List<MyObject> result = new ArrayList<MyObject>();

    for (String id : ids) {
        QueryBuilder<MyObject> queryBuilder = myObjectDao.queryBuilder();
        MyObject myObject = queryBuilder.where(MyObjectDao.Properties.Id.eq(id)).unique();
        result.add(myObject);
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

但是,这似乎非常无效,因为它必须执行ids.size()查询。具有多个OR语句的单个查询会更好。但是,由于whereOr()or()方法仅除了2个或更多参数外,您必须制作许多IF ELSE语句才能捕获具有0、1或2个id的列表:

public List<MyObject> getMyObjectByIds(List<String> ids) {
    QueryBuilder<MyObject> queryBuilder = myObjectDao.queryBuilder();

    if (ids.size() == 0) {
        List<MyObject> result = new ArrayList<MyObject>();
        return result;
    } else if (ids.size() == 1) {
        return queryBuilder.where(MyObjectDao.Properties.Id.eq(ids.get(0))).list();
    } else if (ids.size() == 2) {
        queryBuilder.whereOr(MyObjectDao.Properties.Id.eq(ids.get(0)), MyObjectDao.Properties.Id.eq(ids.get(1)));
        return queryBuilder.list();
    } else …
Run Code Online (Sandbox Code Playgroud)

java sqlite android greendao

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

SQLITE不幸地停了下来

goodmornig,我在Android studio上创建数据库时遇到问题.代码没有问题,但应用程序说"不幸停止".我怎么解决这个问题?

package com.example.maria.database;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends Activity {
DatabaseHelper myDB;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myDB = new DatabaseHelper(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml. …
Run Code Online (Sandbox Code Playgroud)

java sqlite android

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

android.database.sqlite.SQLiteException:没有这样的表:users_table(代码1):,同时编译:INSERT INTO users_table

所以我看到并阅读了所有相同的问题,试图解决问题,但我没有找到正确的答案.我试图修改VERSION NUMBER,运行应用程序,但我有错误.之后我从手机中删除了应用程序,将VERSION NUMBER更改为1,再次运行应用程序...同样的错误.

这是我的代码:

   MySQLite sql; 
Context context; 

public MySQLiteAdapter(Context context) { //constructor 
sql = new MySQLite(context); 
this.context=context; 
} 

public long insertUser(String Username,String Pass, String Name, String Mail){ 
SQLiteDatabase db=sql.getWritableDatabase(); 

ContentValues cv=new ContentValues(); 

cv.put(MySQLite.COLUMN_USERNAME,Username); 
cv.put(MySQLite.COLUMN_PASSWORD,Pass); 
cv.put(MySQLite.COLUMN_REALNAME,Name); 
cv.put(MySQLite.COLUMN_MAIL,Mail); 

long id=db.insert(MySQLite.TABLE_USERS,null,cv); 
return id; 
} 

class MySQLite extends SQLiteOpenHelper { 

private static final String DATABASE_NAME = "APPLICATION"; //name database 

private static final int DATABASE_VERSION = 1; 

public static final String TABLE_USERS="users_table"; 
public static final String COLUMN_ID = "_id"; 

public static final String COLUMN_USERNAME="USERNAME"; …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

尝试将值添加到List <Integer>

当我尝试在我的onResume()方法中向我的List添加一些值时,我收到此错误:

    java.lang.RuntimeException: Unable to resume activity {.../...MainActivity}: java.lang.UnsupportedOperationException
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3096)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3127)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2482)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5415)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:725)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:615)
 Caused by: java.lang.UnsupportedOperationException
        at java.util.AbstractList.add(AbstractList.java:404)
        at java.util.AbstractList.add(AbstractList.java:425)
        at de.toeducate.tograde.MainActivity.onResume(MainActivity.java:151)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258)
        at android.app.Activity.performResume(Activity.java:6237) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3085)
            at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3127)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2482)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5415)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:725)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:615)
Run Code Online (Sandbox Code Playgroud)

这是我写的代码:

List<Integer> marks = Collections.emptyList();

    for (int i = 0; i < dataBase.getDataMark().size(); …
Run Code Online (Sandbox Code Playgroud)

database sqlite android list

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

错误:没有这样的表:在Sqlite数据库中插入数据时

我正在尝试插入数据sqlite Database.我正在按照Youtube教程执行此任务.

我编写了以下代码并成功创建Sqlite Database file但是当我尝试插入数据时,它会给出错误消息.

我写了以下代码.请指导我在这里做错了什么.

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME="ep";  
    public static final String TABLE_NAME= "transactionsHistory";
    public static final String ID= "ID";
    public static final String MESSAGE= "MESSAGE";
    public static final String CREATE_TABLE= "create table "+ TABLE_NAME + " ( "+ID+" INTEGER PRIMARY KEY AUTO INCREMENT, "+MESSAGE+" TEXT)";
    public static final String DROP_TABLE= "DROP TABLE IF EXISTS"+ TABLE_NAME; 
    private Context context;


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android android-sqlite

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

在Python中显示SQLite数据库中的表

我知道这是一个非常基本的问题,但是由于某种原因,我无法摆脱这一错误。我正在尝试显示/将数据库中所有表的名称(名为“ GData.db”)放入available_tablesPython中的变量中。目前,我有以下内容:

con = sql.connect(r'/Users/linnk/Desktop/Results/GData.db')
cur = con.cursor() 
cur.execute("SHOW TABLES IN GData")
available_table=(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)

这给我倒数第二行的以下错误:

OperationalError: near "SHOW": syntax error
Run Code Online (Sandbox Code Playgroud)

我已经在网上查看了SHOW TABLES文档,但没有找到对我有帮助的信息。

python mysql sqlite

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

Python3 | sqlite3:executemany()不插入任何内容

我想使用sqlite3executemany()插入多个值Python3

码:

import sqlite3
conn = sqlite3.connect('rssnewsdata.db')
c = conn.cursor()

entries = [
    ('url1', 1234, 'title1', 'summary1', 'feedurl1'),
    ('url2', 1235, 'title2', 'summary2', 'feedurl2'),
    ('url3', 1236, 'title3', 'summary3', 'feedurl3'),
    ('url4', 1237, 'title4', 'summary4', 'feedurl4')
]

c.executemany('INSERT INTO entries VALUES (?, ?, ?, ?, ?)', entries)
Run Code Online (Sandbox Code Playgroud)

db文件存在,该表存在,我可以使用Python3SELECT来自它,所以连接到它是没有问题的。该栏目是TEXTINTEGERTEXTTEXTTEXT键入。

Python没有报告错误。缺什么?

sqlite executemany python-3.x sql-insert

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

当我要求unsigned big int时,为什么Delphi(Zeos)在SQLite中给我提供了大字符串?

我正在使用最新的Zeos和SQLite 3.一旦我们创建了所有持久性整数字段,它通常很顺利,从MySQL转换TLargeInt.

但是当我们使用列定义unsigned big int(根据https://www.sqlite.org/datatype3.html允许的唯一无符号类型)时,Delphi会调用结果字段a ftWidestring.

mysql sql delphi sqlite zeos

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