标签: sqlite

有没有办法在SQLite中获取表的约束?

命令"pragma table_info('tablename')"列出列信息,"pragma foreign_key_list('tablename')"列出外键.如何显示表的其他约束(检查,唯一)?只解析表"sqlite_master"的字段"sql"?

sqlite constraints list pragma

15
推荐指数
2
解决办法
7310
查看次数

如何通过Java在SQLite中强制执行外键约束?

看来SQLite默认不强制执行外键.我正在使用sqlitejdbc-v056.jar并且我已经读过使用PRAGMA foreign_keys = ON;将打开外键约束,并且需要在每个连接的基础上打开它.

我的问题是:我需要执行哪些Java语句来打开此命令?我试过了:

connection.createStatement().execute("PRAGMA foreign_keys = ON");
Run Code Online (Sandbox Code Playgroud)

Properties properties = new Properties();
properties.setProperty("PRAGMA foreign_keys", "ON");
connection = DriverManager.getConnection("jdbc:sqlite:test.db", properties);
Run Code Online (Sandbox Code Playgroud)

connection = DriverManager.getConnection("jdbc:sqlite:test.db;foreign keys=true;");
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用.这里有什么我想念的吗?

我已经看到了这个答案,我想做同样的事情,只使用JDBC.

java sqlite jdbc foreign-keys

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

Sqlite3 - 使用Python代码更新表 - %s附近的语法错误

这是我的Python代码 -

cursor.execute("""UPDATE tasks SET task_owner=%s,task_remaining_hours=%s,                      task_impediments=%s,task_notes=%s WHERE task_id=%s""",                      (new_task_owner,new_task_remaining_hours,new_task_impediments,
                      new_task_notes,task_id))
Run Code Online (Sandbox Code Playgroud)

这是我在SQLite3管理器中尝试的SQL语句(Firefox扩展)

UPDATE tasks SET task_owner=%s,task_remaining_hours=%d,task_impediments=%s,task_notes=%s WHERE task_id=%d,("sumod",10,"none","test",1)   
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 -

sqlite3.OperationalError: near "%": syntax error
Run Code Online (Sandbox Code Playgroud)

我尝试了很多网络搜索,包括SO,教程和自我排除故障,但这个错误并没有消失.究竟我在这里做错了什么.

python sql sqlite

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

使用CursorLoader查询SQLite DB并填充AutoCompleteTextView

我有一个我想查询的SQLite数据库.我想通过ICS定位Android 2.2.我遇到了关于如何执行此操作的文章,但它使用了弃用的代码(不是异步查询,而是在UI线程上).我已经阅读过,我可以使用CursorLoaderLoaderManager来执行此任务的首选,最佳实践方式(以免陷入UI线程).

问题是找到一个简洁的例子向我解释如何做到这一点.1)加载数据库,2)查询它,3)使用结果填充AutoCompletetextBox列表视图.

这样的例子存在吗?

sqlite android android-loadermanager android-cursorloader

15
推荐指数
1
解决办法
5840
查看次数

使用iOS应用程序中的数据(选择什么?NSData,CoreData,sqlite,PList,NSUserDefaults)

当我开发iPhone应用程序(时间跟踪器,ToDoList等)时,我永远不知道什么是处理数据的最佳方式.一旦我使用了plist,下次使用sqlite或CoreData.

您如何确定最适合您项目的内容?(只讨论数据管理)

例如,如果你想开发:

  • 时间跟踪器应用程序> PList是您的选择吗?
  • RSS阅读器应用> CoreData?
  • 照片应用> sqlite?
  • 电子邮件客户端>?

对于初学者,你能指点我正确的方向吗?(我知道这很大程度上取决于应用程序以及你喜欢用它做什么,但任何想法都会有所帮助)

我远没有开发复杂的应用程序,它们仍然非常简单.

谢谢你的帮助,马克

sqlite core-data objective-c plist nsuserdefaults

15
推荐指数
1
解决办法
3480
查看次数

SQLite ExecuteReader - > DataTable.Load - > FormatException(DateTime)

我试图读出一个示例Northwind sqlite数据库,但在一些具有日期时间的表上得到错误.这是数据库还是System.Data.SQLite的问题?Exception有点像:"字符串不是有效的DateTime"

http://system.data.sqlite.org/

对于cource,我可以通过正确转换datetime来自己读出数据,但这并不像通过简单的dt.Load()读取它那样高效.

        SQLiteCommand dbCommand = myConnector.CreateCommand();
        dbCommand.CommandText = "SELECT * FROM " + tablename;

        SQLiteDataReader executeReader = dbCommand.ExecuteReader(CommandBehavior.SingleResult);
        DataTable dt = new DataTable();
        dt.Load(executeReader); // <-- FormatException
Run Code Online (Sandbox Code Playgroud)

"bei System.DateTimeParse.ParseExactMultiple(String s,String [] formats,DateTimeFormatInfo dtfi,DateTimeStyles style)\ r \n bei System.DateTime.ParseExact(String s,String [] formats,IFormatProvider provider,DateTimeStyles style)\ r \n bei System.Data.SQLite.SQLiteConvert.ToDateTime(String dateText,SQLiteDateFormats format,DateTimeKind kind),位于c:\ dev\sqlite\dotnet\System.Data.SQLite\SQLiteConvert.cs:Zeile 322."

我需要一个很好的帮助来改进当前的代码.

.net c# sql sqlite

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

在哪里托管Flask + SQLite3网络应用程序?

我正在尝试免费在线托管我的小型个人网站,但我找不到支持Python和使用SQLite3的主机.我看过Heroku但是使用带有Flask的PostgreSQL(没有ORM)对我来说非常困惑.我在哪里可以找到主持人?

python sql sqlite hosting flask

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

不调用Sqlite数据库onUpgrade()

我正在开发一个Android应用程序,我在资产文件夹中使用了现有的sqlite数据库.所以我实际上从该文件夹中复制数据库.用户还可以保存自己的数据(将任何内容标记为收藏).

我在市场上上传了一个版本.现在我想在数据库中添加一些新数据并上传新版本.如果用户从市场更新应用程序,我想保留用户数据(从以前的版本)并添加新数据.我做了一些谷歌,发现升级方法应该做的伎俩.但是我正在从代码中更改DATABASE_VERSION,但是on upgrade方法没有得到调用.我想知道我错过了什么.这是我的代码:

public class DataBaseHelper extends SQLiteOpenHelper {

private static String DB_PATH = "/data/data/riskycoder.login/databases/";
public static String DB_NAME = "datenbank_EN.sqlite";
private SQLiteDatabase myDataBase;
private final Context myContext;
private static final int DATABASE_VERSION = 1;





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

public void createDataBase() throws IOException {
    boolean dbExist = checkDataBase();
    if (dbExist) {
    } else {
        this.getWritableDatabase();
        try {
            this.close();
            copyDataBase();
        } catch (IOException e) {
            throw new Error("Error copying database");
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java sqlite android upgrade

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

使用UNION将两个语句与LIMITS结合使用

有没有办法将这两个语句合并为一个而没有重复的条目?

SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP) 
         order by TimeP limit 50

SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI)  
         order by TimeI limit 50
Run Code Online (Sandbox Code Playgroud)

我的第一个显而易见的尝试不受支持SQLITE(语法错误:限制子句应该在UNION之后而不是之前):

SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP) 
         order by TimeP limit 50
UNION
SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI)
         order by TimeI limit 50
Run Code Online (Sandbox Code Playgroud)

sql sqlite

15
推荐指数
2
解决办法
6924
查看次数

在Android ContentProvider中连接表和通知ContentObservers的最佳实践

我有一个ContentProvider处理与我的应用程序相关的所有数据插入和检索,我遵循Virgil Dobjanschi在Google I/O上建议的模式.我正在使用第一种模式.

我的问题是我有一个逻辑实体,由数据库中的多个表表示.

例如,我有一个Articles表和一个ArticleExtras表.文章代表文章本身,而ArticleExtras代表关于某些文章的附加信息,如评论数量.

我在UI中使用CursorAdapter在ListView的一行中显示文章标题和该文章的注释数.

为了实现这一点,我left outer join ArticleExtras on在Article表的ContentProvider查询方法中添加了一个语句,以便CursorAdapter与Article本身一起获取ArticleExtras.

当从Web获取新文章时,我通​​过ContentProvider将其插入到数据库中,然后通知CursorAdapter并更新UI,这部分按预期工作.

但是,当我取的评论(ArticleExtras)的数量,我想同样的CursorAdapter,这是看在变化content://com.myapp.content/Articles,通知,也让我可以在ListView更新我行.

我当前的实现是这样的:在将ArticleExtras插入数据库之后,我启动一个新查询来检查Articles表是否有任何与我刚刚插入的ArticleExtras相关的行.如果是这样,我将为该文章创建一个新的uri(例如:) content://com.myapp.cotent/Articles/123,并调用getContext().getContentResolver().notifyChange(uri, null),因此正在监视此文章更改的相应CursorAdapter将收到通知.

方法是正确的,还是有更好的方法来实现我想要的?

sqlite android android-contentprovider

15
推荐指数
1
解决办法
1179
查看次数