从.net访问DB2的推荐方法

时间:2011-04-04 13:39:32

标签: .net db2 cobol

我们正在设计一个将从.Net访问DB2数据库的系统。

似乎有3种方法可以做到这一点:

  • 动态SQL
  • 存储过程
  • CICS

使用动态SQL的一个好处是,无需在团队中拥有Cobol程序员。这是对的吗?

你会推荐哪一个?还有其他选择。

3 个答案:

答案 0 :(得分:3)

我想不出有什么理由要设计一个带有CICS数据访问层的新.NET系统。我肯定至少会使用ADO.NET(我认为你的动态SQL是什么意思?)。 IBM有一个可用于DB2的ADO.NET数据提供程序,具有IDbConnection,IDbReader等实现。

我相信NHibernate也支持DB2 UDP,所以你可能也想看看它。

答案 1 :(得分:3)

.NET可以像连接到其他数据库一样连接到DB2。试试DB2Connect。

答案 2 :(得分:1)

我倾向于支持Store Procedures,它应该比Dynamic SQL更快,更易于维护,编码少于CICS /

动态Sql:

  • 优点:更快的开发,熟悉.net开发人员

  • 缺点:在DB中不集中维护Sql。您无法查询DB2是否使用表,查找数据库的更新位置。    使用时会使用Sql,从而导致更高的处理

Sql程序

  • 优点:

     - Faster SQL execution
     - DB2 has control of SQL, you can query DB2 getting paths used by the 
     - SQL, Finds where tables / fields are used and updated
     - SQL is analysed at "Bind" time rather than execution time
       (normally when the program is compiled).
       This leads to lower overheads and consistent execution times.
     - Your SQL is vissible to DBA's, (Mainframe ?) developers
    
  • 缺点:可能需要(大型机?)开发人员

<强> CICS   - 优点:

    - All the advantages of SQL Procedures
    - Can access VSAM Files
    - Can buffer Common SQL in TS Queues, TD Queues, VSAM Files 
  • 缺点:信息结构的额外层(额外开销,更多出错)      更多编码

    对于使用频率较大的大型系统的系统,可能值得考虑。

    最后一点,Java有SQLJ,DB2中有SQLJ,SQL给DB2存储/维护。 SQLJ具有与Sql-Procedures相同的优点。我不知道.net等价物。