读书人

amp;#164;○大伙把平时遇到的隐蔽性异常贴

发布时间: 2012-02-13 17:20:26 作者: rapoo

¤●○大伙把平时遇到的隐蔽性错误贴出来共享,防止我们重蹈覆辙,节省我们程序员Debug时间,也为我们的软件发布提高健壮性和稳定性
大伙把平时遇到的隐蔽性错误贴出来共享,防止我们重蹈覆辙,节省我们程序员Debug时间,也为我们的软件发布提高健壮性和稳定性

[解决办法]
好主意
[解决办法]
好像我自己都没有注意呢,汗......
[解决办法]
procedure TForm1.FormCreate(Sender: TObject);
var
s:string;
s2:WideString;
begin
s:= '好123 ';
s2:= '好123 ';
ShowMessage(IntToStr(length(s))+ ' '+IntToStr(length(s2)));
end;

------
不同类型的字符串长度是不一样的,上面的结果分别是5和4
[解决办法]
你自己的

function DaBmIsUse(ACn:TAdoConnection;vtablename:string;vbmfield:string;vbm:string):Boolean;
var
Sp:TAdoStoredProc;
iOk:Integer;
vInfo:string;
begin
vInfo:= ' ';
Sp:=TAdoStoredProc.Create(nil);
try
Sp.Connection:=ACn;
Sp.ProcedureName:= 'p_bmisuse ';
with Sp do
begin
Close;
Parameters.Clear;
Parameters.CreateParameter( '@vtablename ', ftString, pdInput,30, vtablename);
Parameters.CreateParameter( '@vbmfield ', ftString, pdInput,30, vbmfield);
Parameters.CreateParameter( '@vbm ', ftString, pdInput,30, vbm);
Parameters.CreateParameter( '@iOk ', ftSmallint,pdOutput,4, iOk);
Parameters.CreateParameter( '@vInfo ', ftString, pdOutput,100,vInfo);
Prepared:=true;
ExecProc;
Result:=Parameters.ParamValues[ '@iOk '] <> 0;
end;
finally
Sp.Close;
Sp.Free;
end;
end;

有可能会出错,因为你的数据类型不匹配,而你的iOk又没有初始化过,所以有可能导致出错的根本原因,有两种解决办法,
> 1
ftSmallint用整型
> 2
初始化你的iok值

-----------------------------
iOk:Integer;

Parameters.CreateParameter( '@iOk ', ftSmallint,pdOutput,4, iOk);
[解决办法]
procedure TForm1.FormCreate(Sender: TObject);
var
s:string;
s2:WideString;
r:string;
r2:WideString;
begin
s:= '好123 ';
s2:= '好123 ';
r:=Copy(s,1,3);
r2:=Copy(s2,1,3);
ShowMessage(r);//好1
ShowMessage(r2);//好12
end;
-------
copy函数也一样


procedure TForm1.FormCreate(Sender: TObject);
var
s:string;
s2:WideString;
p,p2:Integer;
begin
s:= '好■123 ';
s2:= '好″123 ';
p:=pos( '■ ',s);
p2:=pos( '″ ',s2);
ShowMessage(IntToStr(p)+ ' '+IntToStr(p2));
end;
--------
上面的结果是 3 2
[解决办法]
有时候,我们用max进行取最大值时,本意是double型的比较,可是传入的数字第一个是整型时,编绎会去调用integer型的版本,这个需要注意一下
[解决办法]
-_-!!
1.我经常把整型值直接赋给字符串;
2.经常会写错变量名;
3.经常忘了刷新界面显示;

读书人网 >.NET

热点推荐