in

SDT Community Server

SDT Forums, Blogs, Photos server.

alex

SimpleDatabase 用Oracle 游标返回数据的问题

今日在用SimpleDatabase访问Oracle游标返回数据时,总是提示"不正确的参数类型或数量",访问没有游标返回的Procedure就一切正常,上网查了一下,发现如下资料:

realized all that needed to be done was to add an output parameter of type OracleType.Cursor.  But since the IDataParamater.DbType didn't have that type, and I didn't want to change much code, I changed the code in the 'else parameter.Type is null' portion of Wilson.ORMapper.Internals.Connection.GetParameter(...) to this:

if (dbParameter is System.Data.OracleClient.OracleParameter && dbParameter.Direction == ParameterDirection.Output)
{
   ((
System.Data.OracleClient.OracleParameter)dbParameter).OracleType = System.Data.OracleClient.OracleType.Cursor;
}
else
{
   dbParameter.DbType = DbType.String;
}

用上述的代码测试后,结果正常,但如果真的有output非游标参数,上述的代码就会有问题了。

不知道是不是SimpleDatabase的问题,欢迎大侠们提下意见。

Comments

 

wicky said:

因为SimpleDatabase没考虑数据库的特有功能,以后改进。
October 25, 2006 12:03 PM
 

wicky said:

最新版本已经可以正常处理Oracle Cursor的输出啦。

December 29, 2006 10:58 AM
Copyright SDT, 2006-2009. All rights reserved.