当件のお客様は、長年ハードウェアの保守、メンテナンスに苦労されていました。
機器を販売した業者は、営業担当者はすぐに対応してくれるものの、障害が発生した時のエンジニアリングサポートは決して満足できるものではなかったようです。
そこで、在庫管理システムの再構築と同時に、現状は社内サーバーのSQLServerに保持しているデータを、クラウドに移せないのか、というご相談を頂きました。
実はAccess2010からは、SQLAzureへのODBC接続がサポートされています。
しかし、リンクテーブルでの接続は、パフォーマンスが出ず、また接続状態も不安定であり、基幹業務としての利用には不安が残るものでした。
特にこのシステムでは在庫データが数十万件あり、大量データを処理するため、ODBCでの接続では要件を満たさないと判断いたしました。
そのため、ODBCを利用せずADODBを使用してSQL Azureに接続する方法を採用しました。
が、Recordsetを直接更新するような用途では、ODBC同様にパフォーマンスが上がらず、接続も安定しません・・・
しかし、ForwardOnlyでRecordsetを読み込むとパフォーマンスが上がることが判明したため、SQLAzureから必要なデータをAccessのローカルテーブルに一度複製し、書き戻す時にはADODB経由で直接INSERT/UPDATEを発行する事で、接続の安定性と読み込み、更新のパフォーマンスを両立させる事ができました。
SQLAzureは接続可能なIPAddressを固定できることもあり、セキュリティも担保しつつ、データのバックアップも自動的に取得されることから、安定したシステム運用が可能となっています。