我们正在设计一个将从.Net访问DB2数据库的系统。
似乎有3种方法可以做到这一点:
使用动态SQL的一个好处是,无需在团队中拥有Cobol程序员。这是对的吗?
你会推荐哪一个?还有其他选择。
答案 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等价物。