您好,我正在寻找示例代码中使用的游标适配器与sqlite?
我想在我的下一次升级时将大约700条logging批量插入到Android数据库中。 什么是最有效的方法来做到这一点? 从各个职位,我知道,如果我使用Insert语句,我应该包装在一个事务。 还有一个关于使用自己的数据库的post ,但我需要这些数据进入我的应用程序的标准Android数据库。 请注意,这只会在每个设备上执行一次。 一些想法: 将一堆SQL语句放在一个文件中,一次读一行,然后执行SQL。 把数据放在一个CSV文件,或JSON,或YAML,或XML,或其他。 一次读一行,并执行db.insert() 。 找出如何进行导入,并完成整个文件的单个导入。 制作一个包含所有logging的sqlite数据库,将其复制到Android设备上,并以某种方式合并这两个数据库。 [编辑]把所有的SQL语句作为一个大string放在res / values中的单个文件中。 然后一次读一行,然后执行SQL。 什么是最好的方法? 还有其他的方式来加载数据? 3和4甚至可能吗?
我有一个表格布局,我想填充从数据库查询的结果。 我使用全选和查询返回四行数据。 我使用这段代码填充表格行内的文字。 Cursor c = null; c = dh.getAlternative2(); startManagingCursor(c); // the desired columns to be bound String[] columns = new String[] {DataHelper.KEY_ALT}; // the XML defined views which the data will be bound to int[] to = new int[] { R.id.name_entry}; SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.list_example_entry, c, columns, to); this.setListAdapter(mAdapter); 我希望能够分开KEY_ALT的四个不同的值,并select他们去的地方。 我想让他们填充四个不同的textviews,而不是我上面的例子中的一个。 […]
我正在为Android和iOS构build的PhoneGap应用程序出现问题。 在iOS和大多数Android设备上,除三星Galaxy S3和S4外,其function都非常完美。 在首页加载时,应用程序创build一个本地SQL数据库。 该数据库用于存储整个应用程序中的问题和答案的值。 我在三星设备上遇到的问题是数据库在第一次运行应用程序时无法正常加载,但是如果用户完全closures应用程序并重新打开该应用程序,则会创build数据库而不会出错。 由于第一页需要用户input其年龄,然后将该值存储在SQL数据库中,因此用户正在获得此时应用程序已冻结的印象。 数据库的初始化代码: 的index.html document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { populateDB(); } main_js.js function populateDB() { var db = window.openDatabase("Database", "1.0", "My Database", 20000); db.transaction(populate_DB, errorCB, successCB); } function populate_DB(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS Options (ID INTEGER UNIQUE NOT NULL, Name TEXT NOT NULL, Value INTEGER NOT NULL)'); […]
在我的项目中,我需要将图像存储到sqlite数据库,也需要检索它以显示在我的android模拟器。 当我在使用套接字从Java类获得的编码string解码之后直接显示它时,图像显示在那里。 但是,当我将string的字节数组代码存储到数据types为blob的sqlite数据库中,然后再次使用getblob()函数检索它时,它将包含不同的值,并且会发生此错误: JAVA.lang.NULLPointerException: Factory returns null. 我需要一个build议,将一个位图图像存储到一个SQLite数据库,并从sqlite数据库检索它。
我有一个例程每秒多次对SQLite数据库运行不同的查询。 过了一段时间,我会得到错误 "android.database.CursorWindowAllocationException: – Cursor window allocation of 2048 kb failed. # Open Cursors = "出现在LogCat中。 我有应用程序日志内存使用情况,实际上,当使用量达到一定的限制,我得到这个错误,意味着它用完了。 我的直觉告诉我,每次运行查询时,数据库引擎都会创build一个新的缓冲区(CursorWindow),即使我标记了.close()游标,垃圾收集器和SQLiteDatabase.releaseMemory()释放记忆。 我认为解决scheme可能在于“迫使”数据库始终写入相同的缓冲区,而不是创build新的数据库,但我一直无法find办法做到这一点。 我试图实例化我自己的CursorWindow,并试图设置它和SQLiteCursor无济于事。 有任何想法吗? 编辑:重新从@GrahamBorland示例代码请求: public static CursorWindow cursorWindow = new CursorWindow("cursorWindow"); public static SQLiteCursor sqlCursor; public static void getItemsVisibleArea(GeoPoint mapCenter, int latSpan, int lonSpan) { query = "SELECT * FROM Items"; //would be more complex in real […]
我有一个表question_table和一个ImageButton ( 返回 )。 点击Back后,我需要从数据库中获取最后插入的logging。 我的行包含以下列: question , optionA , optionB , optionC , optionD ,我需要在我的Activity使用的数据。 我在数据库中创build一个方法,但它不工作。 以下是供参考的代码: MySQLiteHelper.java摘录: public List<ObjectiveWiseQuestion> getLastInsertQuestion() { // long index = 0; List<ObjectiveWiseQuestion>LocwiseProfileList=new ArrayList<ObjectiveWiseQuestion>(); db = getReadableDatabase(); Cursor cursor = db.query( "sqlite_sequence", new String[]{"seq"}, "name = ?", new String[]{TABLE_QUESTION}, null, null, null, null ); if (cursor.moveToFirst()) { do { […]
最近我们需要将列添加到一些现有的SQLite数据库表中。 这可以通过ALTER TABLE ADD COLUMN 。 当然,如果桌子已经被改变了,我们想要放弃它。 不幸的是,SQLite不支持ALTER TABLE上的IF NOT EXISTS子句。 我们目前的解决方法是执行ALTER TABLE语句并忽略任何“重复的列名”错误,就像这个Python例子 (但在C ++中)。 但是,我们常用的设置数据库模式的方法是使用包含CREATE TABLE IF NOT EXISTS和CREATE INDEX IF NOT EXISTS语句的.sql脚本,该脚本可以使用sqlite3_exec或sqlite3命令行工具执行。 我们不能把ALTER TABLE放在这些脚本文件中,因为如果这个语句失败了,它后面的任何东西都不会被执行。 我想在一个地方有表格定义,而不是分割.sql和.cpp文件。 有没有办法编写一个解决方法来ALTER TABLE ADD COLUMN IF NOT EXISTS在纯SQLite SQL的ALTER TABLE ADD COLUMN IF NOT EXISTS ?
我试图使用语句SELECT TOP 1 * FROM tasks WHERE dueDate < ?1 ORDER BY dueDate DESC但SQLite说near "1": syntax error 。 怎么了?
在sqlite中划分返回整数值 sqlite> select totalUsers/totalBids from (select (select count(*) from Bids) as totalBids , (select count(*) from Users) as totalUsers) A; 1 我们能否把结果转换成真正的分割结果?