2007.10.03
category
comments

ASQLを使ってas3から直接MySQLとやり取りしてみる

久しぶりのas3エントリー。ASQLとはMySQLに直接接続できるライブラリー。現在の最新リリースはalpha 0.1.4。まずはクラスをASQLのサイトからダウンロードしてくる。ソースは以下参照。

今回はローカルにあるMySQLに接続するので、connector.connect()の第1引数と第2引数はそのままにしておく。第3引数と第4引数をデータベースに合わせて変更する。第5引数はポート番号なので特に変更する必要なし。次にconnector.query();でSQL文を発行してやる。ここも任意のテーブル名を指定する。最後に受け取るデータはすべて配列で返ってくるため、evt.data[0].columnNameとする事で個別に取得できる。columnNameはデータベースのフィールド名に置き変えてやれば、それに対応するデータが取れる。用事が済んだらconnector.disconnect();でコネクションを開放してやるのもお忘れなく。

本家サイトのフォーラムでも触れられてるけど、swfをデコンパイルされるとサーバー情報が丸見えになるのでプロテクトをかけるなどの注意が必要。

ACTIONSCRIPT:
package
{
   import pl.mooska.asql.*;
   import pl.mooska.asql.events.*;
   import flash.display.Sprite;

   public class AsqlSample extends Sprite
   {
      private var connector:Asql = new Asql();

      public function AsqlSample()
      {
         connector.addEventListener( SQLEvent.CONNECT, handleConnect );
         connector.addEventListener( SQLError.SQL_ERROR, handleError );
         connector.addEventListener( SQLEvent.SQL_OK, handleOK );
         connector.addEventListener(SQLEvent.SQL_DATA, handleData);
         connector.connect("localhost", "root", "パスワード", "データベース名" , 3306);
      }
     
      private function handleConnect ( evt:SQLEvent ):void
      {
         trace("コネクション成功");
         connector.query("select * from テーブル名");   //type a query, without semicolon at the end
      }
      private function handleError ( evt:SQLError ):void
      {
          trace("エラー "+evt.text);
      }
      private function handleOK ( evt:SQLEvent ):void
      {
         trace("SQL文の実行成功");
      }
      private function handleData ( evt:SQLEvent ):void
      {
         trace("データ受け取り成功");
         trace( evt.data[0].columnName);
         connector.disconnect();
      }
   }
}

Post a comment




Comment

Trackbacks

この記事のコメント・トラックバックRSS