Monday, May 2, 2011

ODBC3 の開発

1、ODBC基本概念

ODBCはRDBMSにアクセスするための共通のインタフェースです。

ハンドル
ODBCアプリケーションでは、データベース接続やSQL文など基本的機能をハンドルを使用して
定義し、一連のリソースを管理している

SQL_HANDLE_ENV 環境ハンドル
SQL_HANDLE_DBC データベース接続ハンドル
SQL_HANDLE_STMT ステートメントハンドル
SQL_HANDLE_DESC 記述子ハンドル

関数の戻り値とエラー処理
戻り値のデータ型はSQLRETURNである。
戻り値は、以下のように
SQL_SUCCESS 正常に終了した。
SQL_SUCCESS_WITH_INFO 正常に終了した
SQL_NO_DATA_FOUND これ以上のデータなし
SQL_ERROR 失敗した
SQL_INVALID_HANDLE 無効なハンドルがパラメータとしてわたれた。

SQL_ERRORまたははSQL_SUCESS_WITH_INFO場合、診断情報を生成されます。
SQLERROR(ODBCバージョン3より前)
SQLGetDiagRec(ODBCバージョン3以降)


2、開発流れ

ハンドルの割付
次のODBC関数を呼び出すことにより、ハンドルを割り当てることができます
・SQLAllocEnv,SQLAllocConnect,SQLAllocStmt( ODBCバージョン3前)
・SQLAllocHandle( ODBCバージョン3以降)


データソースへの接続
アプリケーションは環境ハンドルとデータベース接続ハンドルを割り付けてから、
データソースに接続します。
・SQLConnect
・SQLDriverConnect
・SQLBrowseConnect


SQL文の実行
二つの方法が用意されています。
・直接実行
・準備後の実行
直接実行する場合、SQLExecDirect関数でSQL文を直接実行します。
準備後に実行する場合、あらかじめSQLPrepare関数でSQL文を準備しておき,
SQLExecute関数で実行します。


結果セットの取り出し
SQLの実行結果(列)とアプリケーション・プログラム変数を関連つけるは、
SQLBindCol関数でバインドします。
結果セットから1行ずつ行を取り出すには、SQLFetch関数を使用する
結果セットからまとめて行を取り出すには、SQLExtendedFetch関数を使用する

トランザクション制御
ODBCの仕様では、デフォルトで自動コミットが有効になっています。
自動コミットのON/OFFを切り替えるには、SQLSetConnectionOption関数を使用する

自動コミットが無効な場合、コミット及びロールバックを明示的に行う。
トランザクション制御はSQLTransact関数を行います。


データベースとの切断
データベースの切断を行うには、SQLDisconnect関数を使用する。


ハンドルの解放
次の関数を呼び出すことにより、バンドルを解放することができます。
・SQLFreeStmt, SQLFreeConnect, SQLFreeEnv(ODBCバージョン3前)
・SQLFreeHandle(ODBCバージョン3以降)

Wednesday, June 16, 2010

google maps イベント

Google Maps API version 3のイベントは二つがある。
  1. ユーザーイベント。DOMからGoogle Maps APIに伝播される。
  2. Maps APIオブジェクトのMVC状態変化を通知する。
ユーザーイベント。
UIイベント。マウスやキーボードイベントのようなユーザーイベントです。Maps APIでは様々クロスブラウザの特徴を扱う必要なく、DOMイベントを監視し反応さセルメカニズムを提供します。UIステートが引数として渡されます。

MVC状態変化
   MVCオブジェクトは一般的にstate(状態)を持っています。オブジェクトのプロパティが変更した時は、APIはプロパティ変更通知(property_changedイベント)を発生します。例えば、地図のズームレベルが変更されると、zoom_changedイベント発生する。引数は何も渡しません。


イベントを登録する
通知を受け取るために、addListener()を使って、イベントハンドラを登録する。zoom_changedイベントを登録する。
google.maps.event.addListener(map, 'zoom_changed', functionA);


UIイベントの引数にアクセスする。
UIイベントは引数を渡し、イベントリスナーを使ってアクセスすることができます。’click’イベントで、通常はMouseクリックされた地図上の位置を意味するlatLngプロパティとスクリーン上のクリックされた位置を意味するpixelを渡す。
google.maps.event.addListener(map, 'click', function(event){

var mylatlng = event.latLng;
});


イベントハンドラ内でプロパティの取得と設定
MVC状態変化イベントは引数を渡しません。MVC状態変化のプロパティを調べたい時は、明示的なオブジェクトのgetProperty()メソッドをコールするのが良い。




Monday, June 14, 2010

Google Maps Version 3

Google Mapsを作り手順

  1. scriptタグを使って、Map API JavaScriptを読み込みます。


  2. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

  3. 地図を表示するためのdiv要素を作成する


  4. <div id="map" style="height:100%;width:100%"></div>

  5. たくさんの地図プロパティの保持するためのJavascriptオブジェクト定数を作成する



  6. function initilize(){

    //location
    var myLocation = new google.maps.LatLng(34.32322,113.323232);

    //map option
    var myOptions ={
    zoom: 8,
    center: myLocation,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    //mapTypeId:google.maps.MapTypeId.SATELLITE
    //mapTypeId: google.maps.MapTypeId.HYBRID
    //mapTypeId: google.maps.MapTypeId.TERRAIN

    }

    }

  7. ”map”オブジェクトを作成するためのjavascript関数を書きます。


  8. var map = new google.maps.Map(document.getElementById("map"), myOptions);

  9. bodyタグのonloadイベントで、地図オブジェクトを初期化します。


  10. <body onload="initilize()">

    ......
    </body>