从 .net 访问 DB2 的推荐方法

发布于 2024-10-29 22:31:16 字数 193 浏览 8 评论 0原文

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

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

  • 动态 SQL
  • 存储过程
  • CICS

使用动态 SQL 的好处之一是团队中不再需要 Cobol 程序员。这是正确的吗?

您会推荐哪一款?还有其他选择吗?

We are designing a system that will access DB2 databases from .Net.

There appear to be 3 ways to do this:

  • Dynamic SQL
  • Stored Procedures
  • CICS

One benefit of using dynamic SQL, would be to remove the need of having a Cobol programmer on the team. Is this correct?

Which one would you recommend? Are there other options.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

何以笙箫默 2024-11-05 22:31:18

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

我相信 NHibernate 还支持 DB2 UDP,因此您可能也想研究一下。

I can't think of any reason you would design a new .NET system with a CICS data access layer. I would definitely at least use ADO.NET (which what I think you mean by dynamic SQL?). IBM has an ADO.NET data provider available for DB2 with implementations for IDbConnection, IDbReader, etc.

I believe NHibernate also supports DB2 UDP, so you may want to look into that as well.

请你别敷衍 2024-11-05 22:31:18

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

.NET can connect to DB2 the same way it can connect to other databases. Try DB2Connect.

蝶舞 2024-11-05 22:31:18

我倾向于存储过程,它应该比动态 SQL 更快、更易于维护,并且比 CICS/

动态 Sql:

  • 编码更少

    优点: 开发速度更快,熟悉.net 开发人员

  • 缺点: Sql 不是在 DB 中集中维护。您无法查询 DB2 表的使用情况,查找数据库更新的位置。
    Sql 在使用时进行分析,导致更高的处理速度

Sql过程

  • 优点:

     - 更快的 SQL 执行
     - DB2具有对SQL的控制,您可以查询DB2获取SQL所使用的路径 
     - SQL,查找使用和更新表/字段的位置
     - SQL 在“绑定”时而不是执行时进行分析
       (通常在编译程序时)。
       这会导致较低的开销和一致的执行时间。
     - DBA、(大型机?)开发人员可以看到您的 SQL
    
  • 缺点:可能需要(大型机?)开发人员

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 是否有等效项。

I would tend to favour Store Procedures, it should be faster and more maintainable than Dynamic SQL and less coding than CICS/

Dynamic Sql:

  • Pros: Faster development, Familiar to .net developers

  • Cons: Sql is not centrally maintained in DB. You can not query DB2 for usage of tables, find where database are updated.
    Sql is anaylsed when used, leading to higher processing

Sql Procedures

  • Pros:

     - 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
    
  • Cons: May need (Mainframe ?) developers

Cics
- Pros:

    - All the advantages of SQL Procedures
    - Can access VSAM Files
    - Can buffer Common SQL in TS Queues, TD Queues, VSAM Files 
  • Cons: Extra layer of infostructure (extra overheads, more to go wrong)
    More Coding

    May be worth considering for system with large system with very heavy usage.

    One Final point, Java has SQLJ, with SQLJ in DB2 the SQL is given to DB2 to store / maintain.
    SQLJ has the same advantages as Sql-Procedures. I do not know of a .net equivalent though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文