fellowbx website


top

felBASEforODBC

0.スペック

対応OSMicrosoft Windows 95/98/98se/me/nt4(sp6a)/2000(sp4)/xp(sp1)
対応言語Microsoft Visual Basic 6(sp6) 日本語版
著作権者fellowbx
現行バージョン1.0.1
作成日1997.12.08
更新日2005.03.21
種別開発目的での使用はシェアウェア扱いとなります。
インストール及びランタイムとしての使用は自由です。
サポート詳しくは下記サポート欄を参照してください。
転載必ず許諾を得てから行ってください。
再配布必ずVectorサイトから最新版をダウンロードしてください。
圧縮内容.\FBODC101.LZH(本体圧縮ファイル、解凍後以降のファイル出現)
.\SETUP.EXE
.\SETUP.LST
.\FELBASEFORODBC.CAB
.\README.TXT

1.はじめに

この度は、`felBASEforODBC'(以下、fBO)をダウンロードしていただき、有難うございます。
fBOは、`Microsoft(r) Windows(r)'(以下、Windows)の`Microsoft Visual Basic(r)'(以下、VB)開発環境でアプリケーションを開発するとき、ODBC(Open Database Connectivity)操作を簡素化するActiveX-DLLです。
VBでデータベースを操作するには、Windows搭載のDAO、ADO、RDOなどを使用する方法もありますが、fBOは、より用途を特化して、より抽象化したものです。
fBOはODBC32.DLL及びODBCCP32.DLLにある、ODBC API群を使用して作っています。
ODBC APIは`Visual C/C++(r)'(以下、VC)などではよく使用されていますが、これをVBで間単に使えるようにしました。
fBOは、ANSI規格SQLのサポート、シーケンシャルアクセスの開発効率化を実現します。
トランザクションのネスト(ロールバックポイント)やデータベースファイル自体の作成などはサポートしません。
fBOは、高機能化を追求せず、最小限のメソッド及びプロパティでデータベース操作を実現します。
データベース操作は余程特殊なアプリケーションで無い限り、ある方法に則って操作をすることを前提とすれば、発行手順、エラー処理手順などは画一化されます。
その画一化に着目してクラス化したのがこのクラスです。
データベースのメソッドはわりと簡単に使えますが、実際の開発では、エラーなどの例外処理にどう対処するかを検討すると、かなりの時間を費やします。
その部分を簡素化することで、開発者は、エラー処理についてはある程度解放され、よりアプリケーション開発に専念できます。

2.インストール

ダウンロードしたファイル(LZH圧縮)を解凍して、`setup.exe'を実行してください。
再インストールするときは、fBOがインストールされていないか確認してからインストールしてください。
上書きインストールすると意図しない動作となります。

3.アンインストール

`コントロールパネル'の`アプリケーションの追加と削除'から`felBASEforODBC'を削除してください。

4.動作環境としての利用

fBOで作成されたアプリケーションを動作させるには、このファイルをインストールすれば動作します。
バージョンを確認してインストールしてください。
インストール及びランタイムとしての使用は自由です。

5.アプリケーション開発用としての利用

fBOを利用してアプリケーションを作成する場合は、このファイルをインストールし、Vectorサイトにてライセンスキーを取得してください。
試用するときは、`Licence'プロパティにゲストライセンス`0000000'を設定してください。
オブジェクト生成から5回までのメソッド操作が可能です。
ゲストライセンスの制限を越えて利用すると、メソッドから(-1)のエラーコードが返ります。
正規ライセンスキーを使用した時はこの制限がありません。

6.コーディング時の注意事項

fBOは、`felBASE.ODBC'クラスオブジェクト内に、

  1. `Connect'
  2. `Disconnect'
  3. `SetSQL'
  4. `GetSQL'
  5. `FetSQL'
  6. `SeeSQL'
  7. `AddDSN'
  8. `EnumDSN'
  9. `DelDSN'
というメソッドを備えています。
それぞれに違う引数で使用しますが、`GetSQL'以外はすべてエラー時に(-1)もしくはエラーコードを返し、正常に処理したときは(0)を返します。
エラー発生時にはメソッド実行後に`SeeSQL'メソッドでエラーがあったかを確認してください。
また、`SeeSQL'でキャッチできないエラーもいくつかあるはずです。
その防止策として、戻り値が(0)であるかも併せて確認してください。

7.コーディングで使用できるメソッド

各メソッドの解説です。

  1. `Object.AddDSN'
    lngReturn = Object.AddDSN(データソース名,説明,サーバ,参照先,ドライバ,ユーザID,パスワード)
    データソースを追加します。
    エラーがあるときは(-1)を返します。
  2. `Object.EnumDSN'
    lngReturn = Object.EnumDSN(データソース名,ドライバ)
    データソース名とドライバを返します。
    エラーがあるときは(-1)を返します。
    正常なときは残りのデータソース数を返します。
    詳細なエラー情報は、SeeSQL(0)を使って取得します。
  3. `Object.DelDSN'
    lngReturn = Object.DelDSN(データソース名,ドライバ)
    データソースを削除します。
    エラーがあるときは(-1)を返します。
  4. `Object.Connect'
    lngReturn = Object.Connect(データソース名,ユーザID,パスワード)
    データソースへの接続メソッドです。
    エラーがあるときは(-1)を返します。
    詳細なエラー情報は、SeeSQL(0)を使って取得します。
  5. `Object.Disconnect'
    lngReturn = Object.Disconnect
    ODBC接続を解放するメソッドです。
    エラーがあるときは(-1)を返します。
    詳細なエラー情報は、SeeSQL(0)を使って取得します。
  6. `Object.SetSQL'
    lngReturn = Object.SetSQL(カーソル番号, ステートメント)
    ステートメントをセット、実行するメソッドです。
    1〜5のカーソル番号を指定して、ステートメントをセット、実行します。
    詳細なエラー情報はSeeSQL(カーソル番号)を使って取得します。
  7. `Object.SeeSQL'
    lngReturn = Object.SeeSQL(カーソル番号, 要求番号)
    エラー情報を取得するメソッドです。
    要求番号は省略可能です。
    要求番号省略時はエラー番号、1のときはエラーソース、2のときはエラーステート、3のときはエラー詳細を返します。
    エラーがあるときは(-1)を返します。
  8. `Object.FetSQL'
    lngReturn = Object.FetSQL(カーソル番号)
    ステートメントカーソルをフェッチします。
    エラーがあるときは(-1)を返します。
  9. `Object.GetSQL'
    lngReturn = Object.GetSQL(カーソル番号, カラム番号)
    ステートメントカーソルから値を取得します。
    取得する値が返されます。

今後、フィールド取得オプションやプロパティ情報などを今後追加予定です。

8.サンプルコーディング

既存のデータソースに対して、接続・テーブル作成・操作・テーブル削除・終了・接続解除の手順を記します。

Private Sub Command1_Click()
  Dim fo As Object 'felBASEforODBC Object
  Dim i As Integer
  Set fo = CreateObject("felBASE.ODBC")
  'ライセンス指定
  i = fo.Licence(#ライセンスキーを記述#)
  'ODBC接続
  i = fo.Connect("DSN", "ID", "PW")
  'ODBC接続エラー検出
  If fo.SeeSQL(0) <> 0 Then 
    MsgBox "Err:" & fo.SeeSQL(0) & vbCrLf & "STATE:" & fo.SeeSQL(0, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(0, 3)
    Exit Sub
  End If
  'テーブル作成
  i = fo.SetSQL(1, "create table test (i integer, t varchar(5))")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Descrioption:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  'トランザクションコミット
  i = fo.SetSQL(1, "COMMIT")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  'レコード追加
  i = fo.SetSQL(1, "insert into test values (101, 'AAAAA')")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  i = fo.SetSQL(1, "insert into test values (102, 'BBBBB')")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  'レコード選択
  i = fo.SetSQL(1, "select * from test")
  While fo.SeeSQL(1) = 0
    MsgBox fo.GetSQL(1, 1) & ":" & fo.GetSQL(1, 2)
    fo.FetSQL 1
    Exit Sub
  Wend
  'テーブル削除
  i = fo.SetSQL(1, "drop table test")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  'トランザクションコミット
  i = fo.SetSQL(1, "COMMIT")
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
  'ODBC接続解除
  i = fo.Disconnect
  If fo.SeeSQL(1) <> 0 Then
    MsgBox "Err:" & fo.SeeSQL(1) & vbCrLf & "STATE:" & fo.SeeSQL(1, 2) & _
      vbCrLf & "Description:" & fo.SeeSQL(1, 3)
    Exit Sub
  End If
Exit Sub

9.サポート

シェアウェア登録の方には、電子メールにてサポートを行います。

10.免責

本ソフトウェアおよび同梱のファイルの使用または使用不能により生じたいかなる損害に関して当方は一切責任を負いません。

11.履歴