Flex Air开发SQLite小结,SQLite开发工具及SQLite与Sql
A.Flex Air开发SQLite小结
1.sqlite各语句间用分号间隔
例如:select from tablea;select from tableb;
2.关于Flex中用一个SQLStatement执行多条SQL的代码的问题
有些时候我们可能一次执行多条SQL,不过比较遗憾的是一个SQLStatement只会执行第一个SQL。
下面是一段简单的代码可以帮你解决这个问题,不过需要在SQL件用’;'划分:
try {
// Separate all statements
var parts:Array = createSQL.split( ');' );
for( var i:int; i<parts.length; i++ ) {
// _disibledevent= parts[i] ) {
createStmt.text = parts[i] + ');';
createStmt.execute();
}
}
} catch( error:SQLError ) {
// something failed...
}
具体文章可以看
B.SQLite开发工具
SQLite Spy
http://www.yunqa.de/delphi/sqlitespy
一个非常不错的SQLite Database Explorer and Query Analyzer。不需要安装。 强烈推荐这个,我自己也用.
DBTools Manager
有免费版本的多数据库管理器,同时支持SQLite
Aqua Data Studio
有很多功能支持很多数据库的一个软件,可以通过JDBC或ODBC来支持SQLite查询。
还有SQLite Administrator,后来发现Firefox的插件(addons) Sqlite Manager也是不错的选择。
C.SQLite与Sql Server的语法差异
1.返回最后插入的标识值
返回最后插入的标识值sql server用@@IDENTITY
sqlite用标量函数LAST_INSERT_ROWID()
返回通过当前的 SQLConnection 插入到数据库的最后一行的行标识符(生成的主键)。此值与 SQLConnection.lastInsertRowID 属性返回的值相同。
2.top n
在sql server中返回前2行可以这样:
select top 2 * from aa
order by ids desc
sqlite中用LIMIT,语句如下:
select * from aa
order by ids desc
LIMIT 2
3.GETDATE ( )
在sql server中GETDATE ( )返回当前系统日期和时间
sqlite中没有
4.EXISTS语句
sql server中判断插入(不存在ids=5的就插入)
IF NOT EXISTS (select * from aa where ids=5)
BEGIN
insert into aa(nickname)
select 't'
END
在sqlite中可以这样
insert into aa(nickname)
select 't'
where not exists(select * from aa where ids=5)
5.嵌套事务
sqlite仅允许单个活动的事务
6.RIGHT 和 FULL OUTER JOIN
sqlite不支持 RIGHT OUTER JOIN 或 FULL OUTER JOIN
7.可更新的视图
sqlite视图是只读的。不能对视图执行 DELETE、INSERT 或 UPDATE 语句,sql server是可以对视图 DELETE、INSERT 或 UPDATE
最后推荐几个好站点对开发sqlite有帮助:
sqlite官方站
SQL Syntax
http://www.sqlite.org/lang.html
sqlite中文站
Adobe AIR 包括创建和使用本地 SQL 数据库的功能
http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118676a5497-7fb4.html
Adobe AIR 语言参考本地数据库中的 SQL 支持
http://help.adobe.com/zh_CN/AIR/1.5/jslr/index.html?localDatabaseSQLSupport.html