关于网友提出的“ delphi7 报错'4 ' is not valid integer value”问题疑问,本网通过在网上对“ delphi7 报错'4 ' is not valid integer value”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: delphi7 报错'4 ' is not valid integer value
描述: 请教报错原因代码如下:
//-----------------保存进货单,进货单明细数据-------------------------
procedure Tinput.Button1Click(Sender: TObject);
var
maxnum,maxnum2,temp,inputnum,inputnum2:string;
newnum,newnum2,i:integer;
begin
//--------------------为新插入的进货单和进货单明细数据计算编号-------------
//计算进货单中最大编号,以便插入新的进货单数据时编号不冲突
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select max(编号) 最大编号 from 进货单');
adoquery1.Open;
maxnum:=(adoquery1.FieldByName('最大编号').asstring);
//对读出的编号进行截取并将其转换为整数值,字段太长时可以不能用strtoint来转换
//防止插入第一条记录时出错
if (maxnum='')or(maxnum='') then
temp:='00000'
else
temp:=copy(maxnum,1,5);
//新插入的进货单编号为插入前的最大编号+1
newnum:=strtoint(temp)+1;
//重新组合编码
if length(inttostr(newnum))=1 then
inputnum:='0000'+inttostr(newnum);
if length(inttostr(newnum))=2 then
inputnum:='000'+inttostr(newnum);
if length(inttostr(newnum))=3 then
inputnum:='00'+inttostr(newnum);
if length(inttostr(newnum))=4 then
inputnum:='0'+inttostr(newnum);
if length(inttostr(newnum))=5 then
inputnum:=inttostr(newnum);
//计算进货单明细最大编号以便插入新的进货单明细数据时编号不冲突
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select max(编号) 最大编号 from 进货单明细');
adoquery1.Open;
maxnum2:=adoquery1.FieldByName('最大编号').asstring;
//对读出的编号进行截取并将其转换为整数值,字段太长时可以不能用strtoint来转换
//防止插入第一条记录时出错
if (maxnum2='')or(maxnum2='') then
temp:='00000'
else
temp:=copy(maxnum2,1,5);
newnum2:=strtoint(temp);
解决方案1: 关键字符串用下trim函数,用容错模式保护convert部分程序代码。。。
以上介绍了“ delphi7 报错'4 ' is not valid integer value”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3155067.html