惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
The Cloudflare Blog
I
InfoQ
美团技术团队
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
L
LangChain Blog
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog

博客园 - 剑廿三

AirExcel -用于导出 Excel 2007 文件的 Flex AIR 组件 初版发布 Flex SQLite Batch Insert Datas from Array Flex 遍历 ArrayCollection, Array Flex SQLite: 一次执行多个SQL,查询两个表的数据,导入datagrid Flex AIR: 使用透明 NativeWindow 窗体呈现 Line Chart 的一个 bug (Exception in CartesianChart/updateMultipleAxesStyles) Flex AIR:用 mx:Image 实现的动态图片按钮 Flex AIR:Line Chart 示例-从 XML 原始数据运算得出增长率图表 Flex AIR:Line Chart 示例-用 XML 画图表很简单 Flex: 抓取网页,通过 XML 获取部分内容 Flex: 通过 DataGrid 操作 XML 文件 PSP 使用 Web FTP (JSP, on EeeBox) 的两项设定 PS3 的 UserAgent PSP2000 的 UserAgent Windows Vista Ultimate 上基于 IE7 的 Maxthon 2.1.5 的 UserAgent OEM正版Windows Vista Home Premium上的 IE8 的 UserAgent EeeBox B202 上基于 Windows XP Pro SP2 的 IE7 的 UserAgent EeeBox B202上基于 Windows XP Pro SP2 IE7 的 Maxthon 2.1.5 的 UserAgent OEM正版Windows Vista Home Premium上的 Firefox 3.5.5 中文版的 UserAgent OEM正版Windows Vista Home Premium上基于IE8的 Maxthon 2.5.9 的 UserAgent
Flex AIR SQLite
剑廿三 · 2010-07-22 · via 博客园 - 剑廿三

Posted on 2010-07-22 07:37  剑廿三  阅读(534)  评论()    收藏  举报

直接帖代码

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s
="library://ns.adobe.com/flex/spark" 
                       xmlns:mx
="library://ns.adobe.com/flex/mx" xmlns:doug="com.dougmccune.containers.*" width="700" height="600">
    
<fx:Declarations>
        
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
    
</fx:Declarations>
    
<fx:Script>
        
<![CDATA[
            
import mx.collections.ArrayCollection;protected function cbLocal_changeHandler(event:Event):void
            {
                
if(this.cbLocal.selected){
                    
this.viewDataSource.selectedIndex = 1
                }
else{
                    
this.viewDataSource.selectedIndex = 0;
                }
            }
            
            
import mx.controls.Alert;
            
private var con:SQLConnection;
            
private var stmt:SQLStatement;
            
private var dbFile:File = File.documentsDirectory.resolvePath("MacroEconomicResearchData.sqlite.db");protected function btnOpen_clickHandler(event:MouseEvent):void
            {
                
this.selectDBFile(this.dbFile);
                
                
            }
            
            
            
protected function selectDBFile(root:File):void 
            { 
                
try
                { 
                    root.browseForSave(
"打开 DB 文件"); 
                    root.addEventListener(Event.SELECT, checkDBFileFormat);
                }
                
catch(error:Error)
                {
                    trace(
"打开失败:" + error.message);
                }
            } 
            
            
protected function checkDBFileFormat(event:Event):void 
            { 
                
if(this.dbFile.exists)
                {
                    var stream:FileStream 
= new FileStream(); 
                    stream.open(
this.dbFile, FileMode.READ);
                    var s:String 
= stream.readUTFBytes(20);
                    
if(s.substr(0,16== "SQLite format 3"){
                        stream.close();
                        trace(
"db file format ok fit");
                        
                        
this.openDBFile();
                    }
else{
                        stream.close();
                        trace(
"db file format not fit");
                        
this.dbFile = File.documentsDirectory.resolvePath("MacroEconomicResearchData.sqlite.db");
                    }
                }
                
else
                {
                    trace(
"new file");
                    
this.openDBFile();
                }
                
            }
            
            
private function openDBFile():void{

                
                con 

= new SQLConnection();
                
                con.addEventListener(SQLEvent.OPEN, dbInitStruct);
                con.addEventListener(SQLErrorEvent.ERROR, dbErrorHandler);
                
                con.openAsync(
this.dbFile);
            }
            
            
private function dbErrorHandler(event:SQLErrorEvent):void 
            { 
                trace(
"Error message:", event.error.message); 
                trace(
"error Details:", event.error.details); 
            }
            
            
private function dbInitStruct(evt:SQLEvent):void
            {
                
                stmt 
= new SQLStatement(); 
                stmt.sqlConnection 
= con; 
                var sql:String 
=  
                    
/*
                    "CREATE TABLE IF NOT EXISTS stockdaily (" +  
                    "    ID INTEGER PRIMARY KEY AUTOINCREMENT, " +  
                    "    StatDate DATE," + 
                    "    Symbol VARCHAR(30)," +
                    "    FinalPrice FLOAT," + 
                    "    HighPrice FLOAT," + 
                    "    LowPrice FLOAT," + 
                    "    DealVolume FLOAT," + 
                    "    DealMoney FLOAT," + 
                    "    RunDate DATETIME" +   
                    ");"+
                    
*/
                    
"CREATE TABLE IF NOT EXISTS stockdailywatch (" +  
                    
"    ID INTEGER PRIMARY KEY AUTOINCREMENT, " +  
                    
"    Symbol VARCHAR(30)," +
                    
"    Name VARCHAR(30)" +
                    
");"
                    
/*
                    + 
                    "CREATE TABLE IF NOT EXISTS stockmarketdaily (" +  
                    "    ID INTEGER PRIMARY KEY AUTOINCREMENT, " +  
                    "    StatDate DATE," + 
                    "    SHDealMoney FLOAT(8,2)," +
                    "    SZDealMoney FLOAT(8,2)," + 
                    "    SHDealMoneyComp FLOAT(6,2)," + 
                    "    SZDealMoneyComp FLOAT(6,2)," + 
                    "    SHAvgPE FLOAT(6,2)," + 
                    "    SZAvgPE FLOAT(6,2)," + 
                    "    SHAvgPB FLOAT(6,2)," + 
                    "    SZAvgPB FLOAT(6,2)," + 
                    "    SHAvgPrice FLOAT(7,2)," + 
                    "    SZAvgPrice FLOAT(7,2)," + 
                    "    RunDateTime DATETIME" +   
                    ");"
                    
*/
                
                stmt.text 
= sql;
                stmt.addEventListener(SQLEvent.RESULT, dbInitData); 
                stmt.addEventListener(SQLErrorEvent.ERROR, dbErrorHandler); 
                stmt.execute();
                
            }
            
            
private function dbInitData(event:SQLEvent):void 
            { 
                trace(
"SQLite 数据库初始化完成"); 
                
                stmt.removeEventListener(SQLEvent.RESULT, dbInitData);
                stmt.addEventListener(SQLEvent.RESULT, dbQueryData);
                stmt.text 
= "INSERT INTO stockdailywatch (Symbol,Name) VALUES ('1A0001','上证指数')";
                stmt.execute();
                
            }
            
            
private function dbQueryData(event:SQLEvent):void
            {
                trace(
"SQLite 数据插入完成");
                
                stmt.removeEventListener(SQLEvent.RESULT, dbQueryData);
                stmt.text 
= "SELECT Symbol,Name FROM stockdailywatch";
                stmt.execute(
-1new Responder(dbShowData, dbErrorHandler));
            }
            
            
private function dbShowData(result:SQLResult):void 
            { 
                trace(
"查询成功"+result.rowsAffected);
                
                
                
if(result.data!=null )
                {
                    trace(result.data.length 
+ "个结果");
                    var c:ArrayCollection 
= new ArrayCollection(result.data);
                    var numResults:
int =result.data.length;
                    
this.dgStockWatch.dataProvider = c;
                }
                
            }
            
            
            

        ]]

>
    
</fx:Script>
    
<mx:ViewStack x="27.8" y="32.4" id="viewDataSource" width="59" height="20">
        
<s:NavigatorContent label="local" width="100%" height="100%">
            
<s:Label>
                remote
            
</s:Label>
        
</s:NavigatorContent>
        
<s:NavigatorContent label="remote" width="100%" height="100%">
            
<s:Label>
                local
            
</s:Label>
        
</s:NavigatorContent>
    
</mx:ViewStack>
    
<s:CheckBox x="126" y="28" label="Local Data Source" id="cbLocal" click="cbLocal_changeHandler(event)"/>
    
<s:Button x="285" y="28" label="打开 SQLite 数据库文件" id="btnOpen" click="btnOpen_clickHandler(event)"/>
    
<mx:DataGrid x="27" y="79" width="643" height="145" id="dgStockDaily">
        
<mx:columns>
            
<mx:DataGridColumn headerText="列 1" dataField="col1"/>
            
<mx:DataGridColumn headerText="列 2" dataField="col2"/>
            
<mx:DataGridColumn headerText="列 3" dataField="col3"/>
        
</mx:columns>
    
</mx:DataGrid>
    
<mx:DataGrid x="27" y="246" width="643" id="dgStockWatch" editable="true">
        
<mx:columns>
            
<mx:DataGridColumn headerText="ID" dataField="ID"/>
            
<mx:DataGridColumn headerText="Symbol" dataField="Symbol"/>
            
<mx:DataGridColumn headerText="Name" dataField="Name"/>
        
</mx:columns>
    
</mx:DataGrid>
    
<mx:DataGrid x="27" y="412" width="643" id="dgMarketDaily">
        
<mx:columns>
            
<mx:DataGridColumn headerText="列 1" dataField="col1"/>
            
<mx:DataGridColumn headerText="列 2" dataField="col2"/>
            
<mx:DataGridColumn headerText="列 3" dataField="col3"/>
        
</mx:columns>
    
</mx:DataGrid>
    
</s:WindowedApplication>