SQLite データベースの作成と スキーマ情報の取得と SELECT の結果を DataGrid へ一括ロード


  【AIR】 SQLite データベースの作成


ブラウザでダウンロード

Air_sqlite

AIR アプリケーション内より、SQLite データベースを作成した後、
テスト用のテーブルを二つ作成します。

SQLの実行結果ととテーブルの一覧を表示することができます
( テキストエリアは更新系のSQLも実行できます )


  ソースコード




● Form コンテナを使って、入力コントロールを並べています。
※ ラベルがデフォルトで右寄せになるので、スタイルで左寄せに変更しています

● DB の作成場所は、デフォルトでアプリケーションが存在するディレクトリになります
※ 作成可能なのは、DB のファイルが存在しない1度きりです。

● Alert は、非同期なので、閉じた時の処理としてフォーカスの移動を引数で指示しています

SQLConnection SQLStatement File

<?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>

  実行用の xml

<?xml version="1.0" encoding="utf-8" ?> 
<application xmlns="http://ns.adobe.com/air/application/1.5"> 
	
	<id>lightbox.ceratedb</id> 
	<version>1.0</version> 
	<filename>create DB</filename> 
	<name>SQLite データベースの作成</name> 
	<installFolder>lightbox</installFolder> 

	<initialWindow> 
		<title>AIR アプリケーション</title> 
		<content>Mainw.swf</content> 
		<x>300</x>
		<y>200</y>
		<width>750</width>
		<height>600</height>
		<systemChrome>standard</systemChrome> 
		<transparent>false</transparent> 
		<visible>true</visible> 
		<minimizable>true</minimizable> 
		<maximizable>true</maximizable> 
		<resizable>true</resizable> 
	</initialWindow>

</application>

↓オンラインドキュメント( 英文 )
Setting AIR application properties
Creating your first AIR application with the Flex SDK




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[flex3]
CCBot/2.0 (https://commoncrawl.org/faq/)
21/01/25 09:35:56
InfoBoard Version 1.00 : Language=Perl

BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube