在一个存储过程中我用'Err'表示错误码,但在Delphi中调用时用FieldByName('Err').AsInteger发现负数成了正数,如-1成了1,-2成了2,导致程序运行错误,特向各位大侠请教。
解决方案 »
- 为了使打印机能够回退纸,在delphi中如何调用BASIC程序(说明书中给的)?
- 关于dll文件调用,窗体显示问题?哪个高手帮帮忙
- 怎么才能不关??
- 如何实现这样的功能?(dbgrid)
- 如何将TMemo中的字符存成*.txt文件?
- 请问TClass =class of TObject 这种语法是什么意思,它的用处在哪儿?
- 全角、半角互相转换,但中文不懂怎么转?求助
- 死人啦,快来看呀。
- 100分请教!高手请进!怎样把windows的鼠标变成自己编辑的鼠标资源的鼠标呢?????????
- 请你帮我一个关于delphi程序发布的问题,紧急问题我要给你高分!
- 有关dbExpress组件的问题
- GetDriveType() API函数
ErrCode:= FieldByName('Err').AsInteger;
取值,结果ErrCode为正值,
ErrCode定义为int ,longint, int64都是这样但在查询分析器中执行结果正确为负值
继续运行,ErrCode:= FieldByName('Err').AsInteger后,ErrCode就成了正值。
再在查询分析器中执行语句,结果还是正确,为所设定的负值,不知是怎么回事。
Err
------
-100继续运行,ErrCode:= FieldByName('Err').AsInteger后,ErrCode就成了正值。
ErrCode = 100再在查询分析器中执行语句,结果还是正确,为所设定的负值:
Err
------
-100
不知是怎么回事。
再 StrToInt() 看看 (瞎猜的)
sSql := 'DECLARE @Err bigint '
+ ' EXECUTE prTest @Err OUTPUT '
+ ' SELECT @Err AS ErrCode' ;
with query1 do
begin
close;
SQL.Clear;
SQL.Add(sSql);
Open;
ErrCode := FieldByName('ErrCode').AsInteger;
...
end
最后采用 wjlsmail(计算机质子) ( ) 的思路用StrToInt()搞定了。