<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="initData();"
paddingLeft="0"
paddingTop="0"
paddingBottom="0"
paddingRight="20"
backgroundColor="0xC0C0C0"
>
<mx:Style>
global {
fontSize: 12;
}
.labelAlign {
textAlign: left;
}
Alert {
backgroundColor: #FFFFFF;
backgroundAlpha: 1;
color: #000000;
borderColor: #000000;
borderStyle: solid;
borderThickness: 1;
headerColors: #A0A0A0,#A0A0A0;
}
</mx:Style>
<mx:Script>
<![CDATA[
import flash.data.*;
import mx.controls.Alert;
import mx.events.CloseEvent;
private var con:SQLConnection = new SQLConnection();
// *********************************************************
// アプリケーションの初期化
// *********************************************************
public function initData():void {
// デフォルトの DB のパス
dbpath.text = File.applicationDirectory.nativePath
+ "\\db1.sqlite3";
// テーブル一覧の表示イベント
// ( loadSchema 後の処理 )
con.addEventListener(flash.events.SQLEvent.SCHEMA,
function( e:flash.events.SQLEvent ):void {
var rs:SQLSchemaResult = con.getSchemaResult();
grid.dataProvider = rs.tables;
con.close();
}
)
}
// *********************************************************
// DB作成
// *********************************************************
public function ActionStart():void {
try {
var target:File = new File(dbpath.text);
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
return;
}
if ( target.exists ) {
Alert.show("データーベースは既に存在します",
"",Alert.OK,null,alertCloseDbpath);
return;
}
var exe:SQLStatement = new SQLStatement();
try {
con.open( target );
exe.sqlConnection = con;
exe.text = "create table 社員マスタ ("
+ " 社員コード TEXT(4)"
+ ",氏名 TEXT(50)"
+ ",primary key(社員コード) )";
exe.execute();
exe.text = "create table 得意先マスタ ("
+ " 得意先コード TEXT(4)"
+ ",会社名 TEXT(50)"
+ ",primary key(得意先コード) )";
exe.execute();
exe.text = "insert into 社員マスタ values("
+ "'0001'"
+ ",'日本語表示'"
+ ")";
exe.execute();
exe.text = "insert into 社員マスタ values("
+ "'0002'"
+ ",'山田 太郎'"
+ ")";
exe.execute();
exe.text = "insert into 社員マスタ values("
+ "'0003'"
+ ",'多岡 冬行'"
+ ")";
exe.execute();
Alert.show("データベースを作成しました");
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
return;
}
con.close();
}
// *********************************************************
// SQLの実行
// *********************************************************
public function ActionStart2():void {
try {
var target:File = new File(dbpath.text);
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
return;
}
if ( !target.exists ) {
Alert.show("DBが存在しません",
"",Alert.OK,null,alertCloseDbpath);
return;
}
var exe:SQLStatement = new SQLStatement();
try {
con.open( target );
exe.sqlConnection = con;
exe.text = sql.text;
exe.execute();
var rs:SQLResult = exe.getResult();
grid.dataProvider = rs.data;
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
}
con.close();
}
// *********************************************************
// テーブル一覧の表示
// *********************************************************
public function ActionStart3():void {
try {
var target:File = new File(dbpath.text);
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
return;
}
if ( !target.exists ) {
Alert.show("DBが存在しません",
"",Alert.OK,null,alertCloseDbpath);
return;
}
var exe:SQLStatement = new SQLStatement();
try {
con.open( target );
// テーブルスキーマをロード
con.loadSchema(SQLTableSchema);
}
catch (error:Error) {
Alert.show("エラー:" + error.message,
"",Alert.OK,null,alertCloseDbpath);
return;
}
}
// *********************************************************
// 上のエラーメッセージ表示後の処理
// *********************************************************
public function alertCloseDbpath(event:CloseEvent):void {
dbpath.setFocus();
}
]]>
</mx:Script>
<mx:Form width="90%" height="90%">
<mx:FormHeading label="SQLite データベースの作成"/>
<mx:FormItem label="データベースのパス" labelStyleName="labelAlign">
<mx:TextInput
id="dbpath"
width="500"
/>
</mx:FormItem>
<mx:FormItem label="処理" labelStyleName="labelAlign">
<mx:Button
label="DB作成"
click="ActionStart();"
/>
</mx:FormItem>
<mx:FormItem label="" labelStyleName="labelAlign">
<mx:HBox>
<mx:Button
label="SQL実行"
click="ActionStart2();"
/>
<mx:Button
label="テーブル一覧"
click="ActionStart3();"
/>
</mx:HBox>
</mx:FormItem>
<mx:FormItem label="" labelStyleName="labelAlign">
<mx:TextArea id="sql" width="300" text="select * from 社員マスタ" />
</mx:FormItem>
<mx:FormItem label="" labelStyleName="labelAlign">
<mx:DataGrid
id="grid" width="500" height="300"
horizontalScrollPolicy="on"
/>
</mx:FormItem>
</mx:Form>
</mx:Application>