我有一个sqlite数据库存储在Document目录中,图像名称存储在表格列中.图像存储在应用程序包中.图像直接通过使用代码在列中给出imga的名称来实现.需要指定任何路径..只需要名称就可以了.
现在,如果我动态地将图像存储在文档目录中并直接在Sqlite db的image列中给出图像的名称,我就无法获取它.我是否需要指定任何到达那里的路径..在应用程序包中图像是直接来的.
任何人都知道为什么我的应用程序的文档和数据文件夹达到20MB,即使我只存储简单字符串的数据库是空的?
编辑:@olemoritz回答
嘿伙计们,我已经搜索了许多其他答案,我仍然无法弄清楚这个问题.
statement.executeUpdate("CREATE TABLE IF NOT EXISTS recentlyWatched (fileName STRING NOT NULL, fileLocation STRING, viewCount INTEGER, PRIMARY KEY (fileName))");
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:media.db");
statement = connection.createStatement();
statement.executeUpdate("INSERT INTO recentlyWatched (fileName, fileLocation, viewCount) VALUES ('"
+ fileName + "', '"
+ fileLocation + "', 0) ON DUPLICATE KEY UPDATE viewCount = '1'");
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多方法来解决这个问题,每当我尝试插入一条记录时都会感到茫然,我得到"java.sql.SQLException:near"ON":语法错误".
更新
最终代码看起来像这样
statement.executeUpdate("INSERT OR IGNORE INTO recentlyWatched (fileName, fileLocation, viewCount) VALUES ('"
+ fileName + "', '"
+ fileLocation + "', 0)");
statement.executeUpdate("UPDATE recentlyWatched SET viewCount = viewCount + …Run Code Online (Sandbox Code Playgroud) SQLite version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> $sqlite3 DatabaseName.db;
Error: near "$sqlite3": syntax error
sqlite> DatabaseName.db;
Error: near "DatabaseName": syntax error
sqlite> sqlite3 DatabaseName.db;
Error: near "sqlite3": syntax error
sqlite>
Run Code Online (Sandbox Code Playgroud)
我正在尝试在SQLite中创建一个数据库.我收到上面的错误.请帮忙
如何转换string为in的datetime使用?sqlsqlite
在我的SQLite数据库中,puttime列nvarchar类型和存储数据为空,空字符串,2013年10月23日,2013年10月23日十三时30分25秒,2013年10月24日9时30分22秒
我使用下面的查询进行转换,但是'2013-10-24 9:30:22'无法转换成功,该怎么做:
select puttime, datetime(puttime) from tb_news
Run Code Online (Sandbox Code Playgroud)
结果:
PutTime datetime(puttime)
2013-05-06 2013-05-06 00:00:00
2013-10-23 2013-10-23 00:00:00
2013-10-23 13:30:25 2013-10-23 13:30:25
2013-10-23 18:00:00 2013-10-23 18:00:00
2013-10-24 17:32:33 2013-10-24 17:32:33
2013-10-24 22:49:43 2013-10-24 22:49:43
2013-10-24 9:30:22
2013-10-25 00:01:33 2013-10-25 00:01:33
Run Code Online (Sandbox Code Playgroud)
谢谢。
我有一个sqlite数据库,我想执行一个选择查询并在TEdit中显示结果.我该怎么做?
query := 'SELECT username FROM users'; //The query returns only one row
FDQuery1.ExecSQL;
FDQuery1.Open();
Edit1.Text := ??
Run Code Online (Sandbox Code Playgroud) 我在Sqlite列中将日期存储为字符串,格式为YYYY-MM-DD(年份日期和月份不分为三列)现在我需要进行查询,该查询给出了最接近日期的结果查询作为第一个条目的日期,订单按升序排列.这里我对这一年不感兴趣,只有月份和日期很重要.根据我的要求,我应该处理什么类型的查询,以便按顺序获取这些日期.
例:
我有约会
1980-01-11,1999-08-03,2013-12-03查询后我应该得到:(根据当前日期,考虑到它是2013年12月1日)
2013-12-03,1999-01-11,1980-08-03(仅基于月和日排序).
我也从这里参考:MySQL查询根据当前日期排序即将到来的生日但是它不是很清楚.我认为Unix时间戳作为存储在日期列中的长值将有助于我感兴趣的查询类型,而不是简单的日期格式.
我的查询,运行大约需要7秒才能完成应该的操作.但是,由于它插入了大约30条记录,我认为它太慢了.现在,要么我运行的查询写得不好,要么实际需要这么多时间.但那会很奇怪.底层数据库是SQLite,查询如下所示:
procedure TForm1.cxButton1Click(Sender: TObject);
begin
with UNIquery2 do begin
Close;
SQL.Clear;
UNIQuery1.First;
while Uniquery1.EOF = false do begin
SQL.Text:= 'INSERT INTO MYTABLE (FIELD1,FIELD2,FIELD3,FIELD4) VALUES (:a1,:a2,:a3,:a4)';
ParamByName('a1').asString := AdvOfficeStatusBar1.Panels[0].Text;
ParamByName('a2').asString := UniTable1.FieldByName('FIELD2').asString;
ParamByName('a3').asString := Uniquery1.FieldByName(',FIELD3').asString;
ParamByName('a4').Value := Uniquery1.FieldByName('FIELD4').Value;//boolean field true/false
Uniquery1.Next;
ExecSQL;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
那么有人可以告诉我这是否正常或我错过了什么?所有字段都是文本,除了'a4',它是布尔值(true/false).
答案,修改(基于来自LS_dev的提取):
procedure TForm1.cxButton1Click(Sender: TObject);
begin
with UNIquery2 do begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO MYTABLE (FIELD1,FIELD2,FIELD3,FIELD4) VALUES (:a1,:a2,:a3,:a4)');
SQL.Prepare;
UniTransaction.AddConnection(UniConnection2);
UniTransaction.StartTransaction;
try
UNIQuery1.First;
while Uniquery1.EOF = false do begin
Params[0].asString := AdvOfficeStatusBar1.Panels[0].Text;
Params[1].asString := UniTable1.FieldByName('FIELD2').asString;
Params[2].asString …Run Code Online (Sandbox Code Playgroud) 从SQLite获取对象(getRecipe()方法)的问题,因为我得到了一个cursoroutofbounds异常.
这是代码:
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
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;
import com.apps.database.sqlite.model.Ingredients;
import com.apps.database.sqlite.model.Photo;
import com.apps.database.sqlite.model.Recipe;
public class RecipeDbHelper extends SQLiteOpenHelper {
private static final String LOG = "DatabaseHelper";
private static final String DATABASE_NAME = "RecipeManager";
private static final int DATABASE_VERSION = 11;
private static final String TABLE_RECIPE = "recipe";
private static final String TABLE_INGREDIENT = "ingredients";
private static final String TABLE_PHOTO = "photo";
private static …Run Code Online (Sandbox Code Playgroud) 我正在使用此代码在sqlite表中搜索数字
String insSQL2 = "select * from Produtos where nome =" + txtBuscaNome.Text;
Run Code Online (Sandbox Code Playgroud)
但当我尝试使用它来搜索名称时,我收到一个错误.为什么?
我得到的错误是
System.Data.SQLite.SQLiteException未处理
SQL逻辑错误或缺少数据库
没有这样的专栏:"我输入的文字"
sqlite ×10
sql ×3
android ×2
delphi ×2
ios ×2
c# ×1
date ×1
datetime ×1
delphi-xe4 ×1
delphi-xe5 ×1
firedac ×1
firemonkey ×1
iphone ×1
java ×1
syntax-error ×1
unidac ×1