我有sproc'up_selfassessform_view',其中包含以下参数:
in ai_eqidentkey SYSKEY
in ai_acidentkey SYSKEY
out as_eqcomments TEXT_STRING
out as_acexplanation TEXT_STRING
- 这是域对象 - SYSKEY是'整数'而TEXT_STRING是'long varchar'。
我可以使用以下代码从iSQL调用sproc:
create variable @eqcomments TEXT_STRING;
create variable @acexamples TEXT_STRING;
call up_selfassessform_view (75000146, 3, @eqcomments, @acexamples);
select @eqcomments, @acexamples;
- 从DB返回正确的值(所以我知道SPROC是好的)。
我已经在ADO.NET中配置了out参数(直到现在为'整数','时间戳','varchar(255)'等):
SAParameter as_acexplanation = cmd.CreateParameter();
as_acexplanation.Direction = ParameterDirection.Output;
as_acexplanation.ParameterName = "as_acexplanation";
as_acexplanation.SADbType = SADbType.LongVarchar;
cmd.Parameters.Add(as_acexplanation);
当我运行以下代码时:
SADataReader reader = cmd.ExecuteReader();
我收到以下错误:
Parameter[2]: the Size property has an invalid size of 0.
哪(我猜)有道理......
但事实是,我不知道该字段的大小(它只是“长varchar”它没有预定的长度 - 不像varchar(XXX))。
无论如何,只是为了好玩,我添加以下内容:
as_acexplanation.Size = 1000;
并且上面的错误消失了,但是现在我打电话的时候:
as_acexplanation.Value
我得到一个长度= 1000的字符串,它只是'\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 .. 。'(\ 0重复1000次)。
所以我真的被困了......任何帮助都会非常感激。
干杯! ;)
Tod T。