• R/O
  • SSH
  • HTTPS

kzodbc: Resumen Repositorio


Recent Commits RSS

Rev. Tiempo Autor Mensaje
r3 2011-04-15 10:24:53 ohfuji 再度のReadMeのアップ
r2 2011-04-15 10:10:03 ohfuji Readmeの文字コードの修正および注意書きを入れた
r1 2011-04-15 10:04:03 ohfuji

ReadMe.txt

/**********************************************************************
 kz_odbc.h  ODBC APIの簡易ラッパークラス
 Authors	Katsuhisa Ohfuji
 Version	0.1a(開発版)2008/03/11
 Version	0.2a(開発版)2008/04/14 NULL値の取得エラーの修正
									(NULL値を空文字として取得する)
 Version	0.3a(開発版)2008/05/16 カタログ関数(tables,columns)の追加
 Version	0.4a(開発版)2009/01/06 Linux対応(+一部関数の追加)
 Version	0.5a(開発版)2009/02/12 colinfoの添え字調整
 Version	0.6a(開発版)2009/02/27 トランザクション対応
									Fetch関数(next)の追加
 Version	0.7a(開発版)2009/04/10 データ取得のバグ修正
 Version	0.7b(開発版)2009/05/07 引数のデータ型の訂正
 Version	0.8a(開発版)2009/05/12 NULLデーター挿入の対応
 Version	0.8b(開発版)2009/12/11 64bit修正
 Version    0.9          2011/04/14 バグフィックス
 
 使い方(Ver0.6から使い方が変わりました)
    1.kz_odbcオブジェクトを作成(コンストラクタにODBC接続文字列を指定)

     kz_odbc db("DSN=myaccess", false);
   
     ※DSNでデーターソースの指定のほか、Driverでの指定も可
     ※コンストラクタの2つ目の引数はコミットモードを指定する
	   trueで手動コミットモード、falseで自動コミットモード
	   手動コミットモードにした場合、最後にCommit()を呼び出す必要がある。
	   
    2.SQLの発行
	 stmtオブジェクトを作成し、SQLを発行する。
	 
     kz_stmt stmt(&db);

     stmt, "INSERT INTO TEST(col1, col2) VALUE(?, ?)", "val1", 10, endsql;

     ※各要素をカンマ(,)で区切る
     ※最初にkz_stmtオブジェクトを指定し、次にSQLを文字列で指定する。
     ※パラメーター(?に対する値)を続けて指定
     ※パラメーターで指定できる型は、整数(各int)、文字(char*)、
       浮動小数点(double,float)、時間(struct tm)
       それ以外の型を指定するとSQLが発行されない(式全体が無視される)。
     ※整数の0をパラメータに指定する時は一度変数に入れてから指定する。
      (C++コンパイラでは、整数の0は、NULLポインタと解釈されるので)
	 ※NULL値を指定したいときは、kz_odbc_nullを指定する。
		stmt, "INSERT INTO TEST(col1) VALUE(?)", kz_odbc_null, endsql;
     ※最後にendsqlと記述する(記述がないとSQLが発行されない)。
     
    3.値を返すSQLの発行
    
     kz_resultset_array result = (stmt, "SELECT * FROM TEST", endsqlrs);
    
     ※ 結果セットは、kz_resultset_array(後述)で返る
     ※ SQL発行部のカンマ式の全体を()で括る。
        演算子の優先順位の関係で全体を括らないと値が返らない。
     ※ 最後は、endsqlrsと記述する(endsqlでは値が返らない)。
    
    4.結果セットの参照方法
     結果セット(kz_resultset_array)は、以下のtypdefになっている。
     	std::vector< std::map< std::string, std::string> >
     ※SELECTの結果を全て受け取る
     ※行はvectorに列はmap(列名と値のmap)になっている。
       cout << result[1]["ID"]
      のようにアクセスできる。
     ※結果セットは、文字列に変換されて返る
    5.エラーの確認
	 ※iserrメンバ関数でエラーの有無が分かる
	 ※errorsメンバ関数でエラー情報が取得できる
	  結果は、kz_string_array( std::vector< std::string > )で返る。
 サンプル
 kz_odbc_sample.cppをご参照下さい。
 ライセンス
  本ソフトウェアはGPLで配布しています。
 文字コード
 本ファイルはUTF-8でエンコードしています。
  kz_odbc.hはShift_JIS(CP932)でエンコードしています。
 お使いの環境に合わせて文字コードを変更後、ご使用願います。
 動作環境
 以下の環境で動作確認をしています。
 Windows 7(64bit) 32bitモード・64bitモード access
 Windows 7(64bit) 32bitモード・64bitモード SQL Server 2008
 Windows 7(64bit) 32bitモード・64bitモード MySQL(connector 5.18)
  Centos 5.5(32bit) unixODBC 2.2.11 MySQL connector 3.51
 コンパイル方法
  Windows:サンプルをご参照ください。
 Linux: unixODBCが必要です。ランタイムと開発版両方必要です。
  例)centos5.5 RPM:unixODBC-2.2.11およびunixODBC-devel-2.2.11
	コンパイル時に g++コマンドに対して -lodbc オプションを指定下さい。
**********************************************************************/
Show on old repository browser