0

我正在使用 Visual Studio 2005 将旧的VB6应用程序改造成VB.NET,并且它们都遇到了同样的问题。

其中之一是使用具有表链接的Access 2000文件访问DB2 数据库,第二种方法是使用ADODB.RecordSet和直接在数据库上运行的串联字符串 SQL 查询。

我知道我可以使用适合这项工作的工具 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_MyTable链接到DB2Scheme.MyTable表。

我不喜欢混合方法,尽管它们都可以正常工作。

哪种方法更好?

哪种方法更适合调试?例如,如何检测到使用应用程序的用户没有权限从方案中的某个表中写入或读取数据?

4

1 回答 1

1

当然,消除 Access 数据库将是理想的。我假设在先前的模型中,Access 数据库也用作前端?如果您要迁移到.net,那么我看不出保留访问数据库的意义。直接访问 db2 数据库,只需注意分发此应用程序时可能需要安装的数据库驱动程序。如果它是一个网络应用程序,问题就更少了。

.net 中的通用错误处理应该显示用户是否有访问问题。如果您的应用程序要使用用户凭据而不是其自己的用户 ID 来访问数据库,您可能需要在启动应用程序时预先检查。我不确定在重写应用程序时这应该是一个问题,您是否使用了相同的身份验证或正式应用程序中使用的登录凭据?

于 2017-11-27T20:31:11.583 回答