この土日、お仕事で Accessから SQLServerへの移行仕事を受けたのです。Accessで作られたアプリケーションで、データ自体も .mdb形式になっていて、最低限の「プログラムとデータの分離」は行われています。
ただ、この形式はシングルユースだったら問題ないのですが、複数マシンからアクセスできるようになっていると、最悪の場合はデータの破損が起きることがあるので要注意なんです。
AccessのデータをSQL Server に移行するのは SQL Server Migration Assistant for Access というツールをMicrosoft が提供していますので、これを使えば原則問題ありません。
これを使って SQL Serverデータに変換して、Access から ODBC 経由で接続すれば基本的に問題ありません。
が、今回のお仕事ではこの変換とODBC接続で問題発生。テーブルの項目として時刻型データを使用しているのですが、単純に Migration Assistant を使うと日付時刻型に変換されて日付まで表示されてしまいます。それに加えてwindows標準のODBCドライバだと、日付時刻型は文字列に変換されてしまい、時間計算ができません。
そこで、ODBC Driver for SQL Server18 を使うと日付時刻型の対応が出来るということを調べ上げて、これをインストールして、自社内のPCではOKになりました。
で週末にお客様のPCにリモートアクセスして
1.SQL Server のインストール
2.SSMS(SQL Server Management System)のインストール
3.テストデータとして数日前に予め変換しておいた SQL Server データをリストア
4.ODBC接続を作ってAccessから読み込む・・・と
行きたかったのですが、4でつまづきました。ODBCアドミニストレータでODBC接続を作れないんです。
土日はこの問題にとっかかってしまいまして、他の仕事がすっ飛びました。かなり調べてなんとか解決したのですが、今日の朝までかかってしまいました。で、実際に動かしてみると事前の予想通り、反応が遅い!遅すぎる。
まあ、わかってはいたんですけどね。
Accessの作り自体があまりきれいなものではないので、根本的に設計し直したいところではありますが、これは費用が掛かりますからねぇ、お客様としてはなるべく費用を掛けないようにしたいという希望がありましたので。
やはり「新しい酒には新しい革袋に盛れ」なんですよね。