2

ネットワーク共有上にあるAccessMDBとの間で読み取り/書き込みを行うHTAとして、ワイヤレスネットワーク上で実行される小さな(8〜10台のラップトップ)POSシステムを作成しました。
ADOを使用する必要があります-GetStringとユーザー名簿はDAOでは使用できません。
また、DAOを使用する必要があります。MDBはADOで圧縮できません。

私は次のことを知っています:
1)データベースバックエンドがAccess MDBでない場合は、ADOを使用する必要があります。
2)バックエンドがMDBであるが、ある時点でSQL Serverにアップグレードしたい場合は、ADOを使用する必要があります。
3)Accessアプリケーションまたはその他のVBA / VBアプリケーション内では、DAOを使用する必要があります。ADOはJet OLE DBプロバイダーの変換レイヤーを経由する必要がありますが、DAOはより直接的です。
4)VBScript / JScriptを使用すると、DAOまたはADOのいずれかを使用できます。

2つの部分からなる質問は次のとおりです
。1)このソフトウェア環境(HTA /スクリプト)では、DAOよりもADOを使用する方がよいでしょうか。
2)HTAはワイヤレスネットワークを介して読み取り/書き込みを行うため、ADOには何らかの利点がありますか?

4

4 に答える 4

3
  1. DAO が必要な唯一の理由がデータベースを圧縮することである場合は、そのために DAO を使用し、その他すべてに ADO を使用できます。ADO または DAO のみを使用することに限定されません。

  2. ADO を使用する最大のメリットは、SQL Server Express への移行が容易になることです。SQL Server Express は MSAccess データベースのすべての利点を欠点なしで提供するため、遅かれ早かれこれを行う必要があります。SQL Server Express は無料で、提案しているシステム サイズを簡単に処理できます。

Access データベースは、特にワイヤレス ネットワークが関係している場合、マルチユーザー環境で簡単に破損します。MSAccess で作業するメリットが失われることを心配している場合でも、リンク テーブルを使用して SQL Server に接続し、その方法で SQL Server Express データベースを操作できます。

于 2009-05-24T17:29:02.530 に答える
2

DAOをVBScriptから操作するように靴べらにするかもしれませんが、それは奇妙な組み合わせです。ADOは一般的に最も理にかなっています。


ADOのもう1つの利点は、DCOMまたはHTTPを介したRDSをサポートすることです。これは、信頼性の低いネットワークやクライアントの破損など、ファイル共有を介して使用されるJetMDBの制限の多くを克服するために使用できます。また、ネットワーク上のトラフィック量を削減し、パフォーマンスを向上させます。さらに、ビジネスオブジェクトが「存続」できる中間層を提供し、該当する場合はCOM+を使用してこれらすべてを仲介できます。

もちろん、データベースをホストするために単純なP2Pネットワークとファイル共有を使用するオプションはもうありません。RDSには、プロセスをホストしてJetエンジンを実行するサーバーが必要です。Jetエンジンは、各クライアントシステムで実行する必要がなくなりました。これは、サーバー上で実行されるJetストアドプロシージャを使用して、より多くのクライアント処理とネットワークトラフィックをオフロードできることを意味します。T-SQLやその他の代替手段ほど洗練されていませんが、このADO / Jet 4.0 OLE DBプロバイダー独自のテクノロジは、DAOでは得られない具体的なメリットを提供します。

RDSは、切断されたRecordsetを使用するプロセスの多くをマスクして、クライアントコードを簡素化できます。この目的のために開発および最適化されたADTGを内部で使用します。

ただし、RDSを使用するには、単純なファイル共有よりも多くのインフラストラクチャと専門知識が必要です。SQLServerのローエンドバージョンを調べた方がよいでしょう。


一般に、DAOまたはJROのいずれかを使用して、 jetcomp.exeユーティリティを使用して圧縮および修復することをお勧めします。それは多くの利点を提供します。

于 2009-06-27T04:08:04.957 に答える
2

JRO を使用して MDB ファイルを圧縮することもできます。これは、XP 以降のシステムにデフォルトでインストールされる最新バージョンの MDAC に含まれます。Access のインストールは必要ありません。

特定の質問に答えるには:

1) ADO の方が最新であり、同じ API を他の種類のスクリプト (LDAP/ActiveDirectory アクセス、ファイル システム フォルダーの読み取り、MAPI メールの読み取り、その他の種類のセミ ファイルの操作など) で使用できるという理由だけで、私は ADO を選択します。固定幅テキストや CSV などの構造化テキスト ファイル。特に HTA プログラミング環境に適しているわけではありませんが、より広く適用可能な API を学習する方がよいでしょう。また、API の方が操作が簡単だと思いますが、私は API から始めて、後でいくつかの古い DAO プロジェクトに取り組みました。

2) ADO が提供する可能性のある利点の 1 つは、切断されたレコードセットの利点であり、ワイヤレス ネットワークのセットアップで利点があるか、少なくともいくつかのアーキテクチャの代替案を提案する可能性があります。レコードセットを開いて切断すると、メモリ内のデータを引き続き操作できますが、データベース接続を開いたままにする必要はありません。その後、後で再接続してデータベースを更新できます。また、テーブルをローカルの XML または ADTG ファイルとして管理することで、完全に切り離されたスタイルで作業できます。

于 2009-06-26T20:51:53.433 に答える
1

よりパフォーマンスの高いプラットフォームではなく Access で HTA アプリケーションを使用する余裕がある場合は、最も簡単な API を使用する必要があります。あなたの場合、ボトルネックは決してdbアクセスの抽象化ではありません。それでも、DAOは本当に古いです。

于 2009-05-24T20:52:37.177 に答える