4

こんにちは、私はこの小さな大きな問題を抱えています。SMB 共有として LAN に共有されているローカル Ubuntu サーバー マシンでホストされている MS Access データベースに接続するレガシー VB6 デスクトップ アプリケーションがあり、Windows でホストされている Tomcat Web アプリケーションを持っています。ベースの VPS、これらは

要件

  • MS Access db から情報を読み取り、webapp に表示します (URL にアクセスすると、ほぼリアルタイムの精度で表示されます)。

  • Web サイトから受け取った情報で MS Access データベースを更新します。

事実

  • 20Mb < デシベルサイズ
  • 15 ~ 25 ユーザーで共有。
  • 一定のローカル更新とクエリ。

ファイル サイズが小さいのは、ツールが大きくなるにつれて切り捨てられるためです (> 100Mb) アーキテクチャが最適ではなく、MS Access が限界に達していることがわかりました。完全な Java と MySQL への移行が進行中です。 、しかしそれには長い時間がかかります....それまでの間、その機能を実装する方法が必要です。ここに私のオプションがあります。


オプション1

webapp から直接 VPN 経由で ubuntu サーバーのデータベースにアクセスします。

短所

  • 出来ますか?。
  • 低速回線。
  • ローカルで頻繁に発生するため、データベースをより頻繁にロックする可能性があります。

オプション 2

db を REST API として公開する Ubuntu サーバーでローカル webapp を実行して、更新がローカル webapp によって処理されるようにします。

短所:

  • unixODBCFreeTDSを見て、UNIX環境でMS Accessを使用するのは難しいですが、これまでのところ使用できていません。

  • さて、アプリ全体を作成し、サーバーを保護します。

オプション 3

助言がありますか?

ここまで読んでくれてありがとう、どんな助けでも本当に感謝しています。

4

1 に答える 1

1

説明に何か見落としがなければ、API とライブラリの違いを混同していると思います。基本的に、ODBC はライブラリとして実装され、ADO や ADO.NET などの追加のデータ アクセス ライブラリを介して Windows ベースのマシンで一般的に使用される API です。unixODBC を解決策として言及したので、これについて言及します。API だけでは不十分なため、完全なソリューションにはなりません。

簡単に言えば、Microsoft Access で作成したデータベース ファイルは .MDB フラット ファイル データベースです (もう少し説明がありますが、データベースとして扱うという点では、ここで重要なのはそれだけです)。.MDB ファイルの構造がどのように機能するかを知っていれば、読み書きを行う独自のライブラリを作成できます。もちろん、これは簡単なことではなく、Windows プラットフォームでは、OS に含まれるライブラリを使用して Microsoft によって提供されます。これは、JET ドライバーおよびデータベースとも呼ばれます。JET は、.MDB ファイルが実装するデータベース形式であり、対応する名前の JET ドライバーを介して Access やその他のアプリケーションで使用されます。

したがって、Windows 以外のプラットフォームで同等のオプションを見つけるには、.MDB ファイルを直接ネイティブに読み書きする方法を知っているライブラリが必要です。Access アプリケーションから同時に .MDB ファイルを使用しようとしている場合は、選択したライブラリがデータベースへの複数ユーザーの同時アクセスをサポートしていることを確認する必要があります。

クイック検索では、私が見つけることができるいくつかの解決策があるようです。最初のものには、いくつかの機能上の制限があるようです。2 つ目は商用製品のようです。

MDB ツール

Easysoft JET/アクセスドライバー

于 2012-04-13T22:03:19.733 に答える