がアクセスデータベースを共有するには、単にネットワークに* .MDBファイルを配置します。 私は火の鳥へのアクセスからの移行は非常に簡単に
ツール、私が使用して(私はFirebirdのは、デルファイのためのMySQLよりもbetterだと思います)それをネットワーク上で共有して開くことができます。私は最大15人のネットワークユーザーにこのテクニックを使用しています。それ以上のトラフィックがある場合は、SQL Serverにプッシュします。
SQLServerへの移行は非常に簡単です。特にdbGOコンポーネント(ADO)をすべて使用する必要がある場合は、SQL Serverインスタンスを指すように接続文字列を変更する必要があります。このような変換で唯一問題となったのは、ブール値のフィールドであった。アクセスでは、これらのフィールドは0または-1の内部表現を持ち、SQL Serverでは0または1の内部表現を持ちます。アクセスでは、SQL Serverではブール値として解決されます。たとえば、次のクエリは、SQL Serverに失敗します。
SELECT * FROM TABLE WHERE BOOLFIELD
それはのように書き換えることがあります。私の他のクエリのすべてがどの、日付/時間を除いて...正しく動作
SELECT * FROM TABLE WHERE BOOLFIELD <> 0
私はパラメータとして渡し、ドライバが翻訳を処理させることをお勧めします。
変換プロセスはかなり簡単です。移行ツールを使用してアクセスデータベースをSQL Serverに移行し、SQL Serverスクリプトデータベースを使用してスクリプトを生成します。このスクリプトを顧客に配布するか、各場所で自分で実行するか、ファイルから読み込んで各コマンドを解析して実行するプログラムを作成します。
OpenDataSourceメソッドを使用して1つのデータベースから別のデータベースにデータを移行し、次にアクセスデータベースから挿入を実行できます。
INSERT INTO TABLE FROM
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Access.mdb')...TABLE
別のオプションは、n-Tierに行くことです。 Delphiのエンタープライズ版をお持ちの場合、TClientDatasetsを使用してシステムを真のn-Tierソリューションに移行し、いくつかのサーバー機能を作成するのは難しくありません。もちろん、走行距離はアプリケーションの現在のレイアウトやシステムの複雑さに大きく依存します。
私はすべての答えを読んだが、まだあなたの質問を理解していません。答えの中には、Accessをフロントエンドとして使用していると仮定しているものがあります。これにより、Delphiが何をしているのかという疑問が生じます。私はあなたがJet MDBを使用していることを意味していると思います。アクセスはどのレベルにも関与していません。また、「プログラムはまだMsアクセスの下で動作する必要があります(DBの移植とアプリケーションの書き換えは問題ありません) "サーバーのバックエンドを使用する新しいアプリケーションを開発しているときにJetプロダクションバックエンドを使用する必要があるということです。しかし、あなたのシナリオが何であるかは私にはっきりと分かりません。 –
Delphiアプリケーションはデータベースを操作します。 Delphiの標準ADOコンポーネントを使用して、MDBデータベースにアクセスします。今はデータベースがローカルに保存されるまでです。アプリケーションは別のPCに置く必要がありますが、DBを操作するために使用されますが、他のクライアントも接続してデータベースを変更する必要があります。 質問は「これを行う正しい方法は何ですか」でした。 書き換え部分は、ADOと互換性のないDBシステムに移植することは有効な解決策ではないことを意味します。 – zz1433