[转载]A.Flex Air开发SQLite小结
http://www.cnblogs.com/aierong/archive/2009/02/19/flexairsqlite.html
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++ ) { // Only, if we really have an SQL statement if ( '' != 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官方站
http://www.sqlite.org/lang.html
sqlite中文站
Adobe AIR 包括创建和使用本地 SQL 数据库的功能
http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118676a5497-7fb4.html
http://help.adobe.com/zh_CN/AIR/1.5/jslr/index.html?localDatabaseSQLSupport.html
浙公网安备 33010602011771号