###歴史の谷間にみつかったODBCDirect
マイクロソフトのデータアクセス技術 の変遷をたどる PDF 断片
2010年に廃刊してしまったDB Magazine の2004年1月の記事
DAO 1.0は1993年に発売されたVB3.0(日本未発売)に搭載され「Microsoft Access1.1(以下、Access)」のJetエンジンを利用するインタフェースとして登場。
当時のJetエンジンにはパフォーマンスに難があったが、2.0で大きく改善。
1995年12月に発売された日本語版のVB4.0ではDaoのVersionはAccess95と同じDao3.0 Jetエンジン改良
VB5.0ではAccess97と同じDao3.5。数年前までVB5.0とAccess97の組み合わせで開発
現在はAccess2000とDao3.6とVB6.0で開発される
VB5.0 Dao3.5 Jetエンジンを介さずに直接ODBC対応データベースへ接続することが可能に
'This Sample Only VB 5.0 / VB 6.0
Dim ws as Dao.WorkSpace
Set ws=Dbengine.Workspaces(0)
Dim db as Dao.databes
Set db = ws.OpenDatabase("C:\Northsind.mdb")
Dim rs as Dao.Recordset
set rs = db.OpenRecordset("Select * From 社員")
Do Until rs.Eof
List1.AddItem rs("氏名")
rs.MoveNext
Loop
というサンプルがあった。
これを利用すると古いMDBファイルと接続できるのかと思ったが、残念ながらそんなことはなかった。現在では使えないサンプルだからだ。
とはいえ、見つかった以上はまとめておくと、ODBCDIrectはAccee2000 Access2003 VB6.0またはVB5.0でできた技であり、Access2007以降はサポートされていない。
このため、これを利用したAccess97/95 Access2.0への接続はできない。
現在は参考リンクのAccess2010でのODBCDirectの代替案をみて書き換える必要がある。そうしないと実行時エラーが発生する。
しかし、このODBCDirectは6年くらいしか存在しなかったという短命な技術だがセキュリティの問題でもあったのだろうか。
###この記事のもう一つの重要な点
Access1.1は日本で未発売だったということ。次の記事で重要になる。
###参考リンク
Access 2010 での ODBCDirect サポートについて
【Access】DAOのODBCダイレクト接続を、泣く泣くADO接続に書き換える。
Access2010でのODBCDIRECTの代替案
Access2013はAccessProject(ADP)がサポートされないのでほぼODBCを使うことになると思います。しかしAccess2007以降ODBCDirectは使えません。
しかしAccess2007以降ODBCDIRECTは使えず
実行時エラー3847
ODBCDIRECTはサポートされません。DAOの代わりにADOを使用するには、コードを記述しなおしてください。
Microsoft Access 2010 を使用したデータ プログラミング