这是检查表中是否存在行的最佳(最有效)方法吗?
SELECT EXISTS(SELECT 1 FROM myTbl WHERE u_tag="tag");
// Table is...
// CREATE TABLE myTbl(id INT PRIMARY KEY, u_tag TEXT);
Run Code Online (Sandbox Code Playgroud)
还有什么是返回值,是假(bool)还是0(int)还是NULL?
我的Android应用程序包含一个SQLite数据库,其中包含一个SQLiteOpenHelper可帮助管理它的类.在应用程序使用期间,用户可以在数据库上执行一些操作,例如添加/删除/更新等.
在某些点上,操作的大小将是已知的,如下所示:
SQLiteDatabase执行单个insert查询在应用程序的其他区域,操作可能很大,例如一次将10多个项目插入数据库.
问题:
当我说线程我的意思是使用一个不是主UI线程的线程.
编辑:我意识到小操作不需要花费太多时间,我可以很好地在主线程上完成它们.我只是担心在主线程上执行它们并且想要澄清是不好的做法!
今晚开发时遇到此错误消息: SQLite3::BusyException: database is locked:
我有两个型号:
要创建播客:
我正在尝试使用我的rails应用程序来利用json feed还详细说明属于此Podcast的曲目的名称(和艺术家)这一事实.
我认为以下before_validation方法会在我们创建新的Podcast时自动创建所有关联的Tracks.
class Podcast < ActiveRecord::Base
attr_accessible :mixcloud_url, :lots, :of, :other, :attrs
has_many :tracks
before_validation :create_tracks
def create_tracks
json = Hashie::Mash.new HTTParty.get(self.json_url)
json.sections.each do |section|
if section.section_type=="track"
Track.create(:name=>section.track.name, :podcast_id=>self.id)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?看起来rails(或sqlite3)不喜欢以这种方式创建关联模型的新实例.我怎么能这样做?我怀疑这是一个像sqlite3一样的rails问题.我可以发布更多代码,如果它会有所帮助.
我一直在尝试从SQLite数据库中获取所有行.但是我从下面的代码中得到了最后一行.
FileChooser类:
public ArrayList<String> readFileFromSQLite() {
fileName = new ArrayList<String>();
fileSQLiteAdapter = new FileSQLiteAdapter(FileChooser.this);
fileSQLiteAdapter.openToRead();
cursor = fileSQLiteAdapter.queueAll();
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
fileName.add(cursor.getString(cursor.getColumnIndex(FileSQLiteAdapter.KEY_CONTENT1)));
} while (cursor.moveToNext());
}
cursor.close();
}
fileSQLiteAdapter.close();
return fileName;
}
Run Code Online (Sandbox Code Playgroud)
FileSQLiteAdapter类:
public Cursor queueAll() {
String[] columns = new String[] { KEY_ID, KEY_CONTENT1 };
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null,
null, null, null, null);
return cursor;
}
Run Code Online (Sandbox Code Playgroud)
请告诉我,我的错误在哪里.欣赏.
一旦我花了几个小时调试一个简单的SQL查询mysql_query(),PHP/MySQL只是为了意识到我错过了关于表名的bactick.从那时起,我一直在使用表名.
但是当我使用相同SQLite/C++的符号时,符号甚至无法识别.令人困惑的是,是否使用这个?标准对使用它有什么看法?
此外,如果有人能告诉我何时使用报价,何时不能报价,将会有所帮助.我的意思是值和字段名称.
Jboss Hibernate对SQLite的支持没有任何说明 -
https://community.jboss.org/wiki/SupportedDatabases2
同样在下面提到SO:
能否请你强调一下这个.我想将嵌入式SQLite与hibernate一起用于swing桌面应用程序.
我也在评估Derby(JavaDB),因为它也可以嵌入并且是jdk的一部分.
有没有人在Visual Studio 201#中使用新的System.Data.SQLite 1.0.91.0与Entity Framework 6一起工作?如果你有,你是怎么做到的?
更新 - 2014年3月20日:System.Data.SQLite 1.0.92.0已经发布但我没有在VS2013中创建EDMX的运气:(我最终使用包管理器(因为EF6.#.#是新SQLite中的依赖项) NuGet包):
uninstall-package entityframework -force
Run Code Online (Sandbox Code Playgroud)
重新启动VS2013并打开旧版EF5以获取VS2013以从现有数据库生成EDMX:
install-package entityframework -version 5.0.0
Run Code Online (Sandbox Code Playgroud)
注意:这不是一个复杂的多表SQLite关系数据库测试,所以如果我使用多个导航(FK)关系的任何东西,我不确定会出现什么其他问题:/
回答EDMX /模型的答案:(更新 - 2014年3月2日)我找到了解决办法,但它不够一致,需要太多步骤才能将其视为有效的解决方案.基本上:
你制作所有的Class(es)文件,
使用表建立与现有SQLite数据库的连接,
修改web/app.config,如仍然出色的SQLite故障单(http://system.data.sqlite.org/index.html/tktview?name=7b8fd3ef77)中的mistachkin所述,包括伪造cdsl/.ssdl /.msl件,和
然后在重建项目之前在Empty EDMX中手动创建Designer中的所有实体模型,然后......
右键单击实体并选择"从数据库更新"...
有时EF/VS2013会添加.tt/DbContesxt,有时则不会.方式也'命中或错过':(
有和没有现有SQLite数据库的"Code First"的答案(基于PMCB,Drexter和Jimi的建议).但请注意,您无法在Visual Studio 2013中自动生成任何EF模型或EDMX文件[原文如此 - 概念架构定义语言(.CSDL),存储架构定义语言(.SSDL)和映射规范语言(.MSL)].我做了不要尝试手动创建EDMX文件以查看它们是否适合EF,即使我这样做,在我看来,做所有手动创建/映射/更改/ XML编辑都会破坏基于实体的框架的整个目的/概念...
<connectionStrings>
<add name="DogsContext" connectionString="Data Source=|DataDirectory|\dogs.s3db;" providerName="System.Data.SQLite" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.91.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.91.0, …Run Code Online (Sandbox Code Playgroud) 我希望在PhoneGap应用程序上找到Angularjs数据持久性的最佳实践.我正在使用Ionic Framework,但与此问题无关,因为它只是建立在Angular&Cordova之上.
我喜欢Angular在数据持久性解决方案上保持灵活性,因为它是一个Web框架,而不是一个混合应用程序框架,所以很有意义...我想知道人们如何解决这个问题.
这是一个概述:
我一直在寻找以下选项.你能提供任何反馈意见吗?
对不起,很长的帖子.我真的希望看到一些关于最佳实践的想法.喜欢Angular Way来处理Hybrid移动应用程序上的大数据持久性.
谢谢
用户定义的函数和整理顺序完全支持用户定义的函数和整理顺序意味着在许多情况下,如果SQLite没有特性,您可以用自己喜欢的.NET语言自己编写.编写UDF和整理序列从未如此简单
我在这里找到的C#SQLite ADO.NET提供程序上发现了这一点,并且在理解有关如何实现/使用用户定义函数的文档时遇到了问题.
任何人都可以解释如何,或为这个失去的新手提供任何工作的例子?