0

私はVisual Studio 2005でVB2000にVB6 appsをにリワークしていますが、それらのすべてに同じ問題があります。これらのAccess 2000でリンクされたテーブルを持つデータベースを使用するか、ADODB.RecordSetを使用します - どちらが良いですか?

一つは、直接に実行し、連結した文字列のSQLクエリとADODB.Recordsetのを使用しているテーブルと第二のアプローチへのリンクがありAccess 2000のファイルを使用してDB2データベースにアクセスしていますデータベース。

私は仕事のための正しいツールであるLinqを使うことができますが、私は現時点でそれを学ぶ時間がありません。私はこの仕事をすばやく終わらせなければなりません。

例:

Function selectNA_FromMyTable_ByNA(ByVal na As String) As String 
    Dim sql As String = "SELECT na FROM DB2Scheme.MyTable " 
    sql = sql & "WHERE (na = '" & na & "')" 

    Return sql 
End Function 

Function selectNA_FromMyTable_ByNA(ByVal na As String) As String 
    Dim sql As String = "SELECT na FROM DB2Scheme_MyTable " 
    sql = sql & "WHERE (na = '" & na & "')" 

    Return sql 
End Function 

DB2Scheme_MyTableDB2Scheme.MyTableテーブルへのリンクです。

私は混合アプローチが好きではありませんが、どちらも適切に動作します。

どちらが良い方法ですか?

どのアプローチがデバッグに適していますか?たとえば、アプリケーションを使用するユーザーに、スキーム内の特定のテーブルのデータを書き込んだり、読み取る権限がないことを検出するにはどうすればよいですか?

+2

VS2005はlinqを含まないNET 2.0に制限しています。それはまた、ADONETが重要なアップグレードとなるようです。 – Plutonix

+1

あなたがそれを避けることができればそれを避けることができれば、ADODB.RecordSetを.netで使わないでください。 – IvanH

+0

私は@IvanHを試してみましょう:)ここの人々はとても古風です。新しい、より良い技術は実装が難しい – Vlad

答えて

1

もちろん、Accessデータベースを削除することは理想的です。以前のモデルでは、Accessデータベースもフロントエンドとして機能していたと思いますか? .netに移動している場合は、アクセスデータベースを保持するという点は表示されません。このアプリケーションを配布する際にインストールする必要のあるデータベース・ドライバーに注意してください。そのウェブアプリなら問題は少なくなる。

.netでの一般的なエラー処理では、ユーザーにアクセスの問題があるかどうかを明らかにする必要があります。アプリケーションが起動するときに、アプリケーションにユーザー資格情報を使用し、データベースにアクセスするためのユーザーIDは使用しない場合は、その前に確認することができます。私は、アプリケーションを書き直すときにこれが心配でなければならないと思っているのですか、あなたは正式なアプリで使われている同じ認証やログオン資格を使っていませんか?

関連する問題