delphi类型转换问题
varss:string;ss1:integer;beginADOQuery3.Close;ADOQuery3.SQL.Clear;ADOQuery3.SQL.Add(f...
var
ss:string;
ss1:integer;
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(format('select top 1 手册证号 from jhsq order by 打印时间 desc',[EDit1.Text]));
ADOQuery3.Open;
ss:=adoquery3.FieldByName('手册证号').AsString;
ss1:=StrTOInt(ss); //出错句
edit1.text:=intTOstr(ss1);
请问怎么回事?
刚又测试了一下,字符串是11位的,如'12345678901',如果10位可以,但11位不行,请问怎么办 展开
ss:string;
ss1:integer;
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(format('select top 1 手册证号 from jhsq order by 打印时间 desc',[EDit1.Text]));
ADOQuery3.Open;
ss:=adoquery3.FieldByName('手册证号').AsString;
ss1:=StrTOInt(ss); //出错句
edit1.text:=intTOstr(ss1);
请问怎么回事?
刚又测试了一下,字符串是11位的,如'12345678901',如果10位可以,但11位不行,请问怎么办 展开
展开全部
adoquery3.FieldByName('手册证号').AsString 里的值不是一个有效的可转的整数。
比如说, “我” 、“3.3”这些的就不能转成整型。
试试把
ss:=adoquery3.FieldByName('手册证号').AsString;
改成
ss:=adoquery3.FieldByName('手册证号').asinteger;
再不成,把代码改成这样,不要ss1:
var
ss:string;
ss1:integer;
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(format('select top 1 手册证号 from jhsq order by 打印时间 desc',[EDit1.Text]));
ADOQuery3.Open;
ss:=adoquery3.FieldByName('手册证号').AsString;
edit1.text:=trim(ss);
比如说, “我” 、“3.3”这些的就不能转成整型。
试试把
ss:=adoquery3.FieldByName('手册证号').AsString;
改成
ss:=adoquery3.FieldByName('手册证号').asinteger;
再不成,把代码改成这样,不要ss1:
var
ss:string;
ss1:integer;
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(format('select top 1 手册证号 from jhsq order by 打印时间 desc',[EDit1.Text]));
ADOQuery3.Open;
ss:=adoquery3.FieldByName('手册证号').AsString;
edit1.text:=trim(ss);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
报错是因为越界
delphi中integer的取值范围是 -2147483648 .. 2147483647
10位 因为是1开头所以 不会报错
11位 就已经越界了 所以才会报错
手机号一般是用char(15)
因为国内号码是 +86后面跟11位号码 香港是+85后面跟11位号码
建议修改类型为string
delphi中integer的取值范围是 -2147483648 .. 2147483647
10位 因为是1开头所以 不会报错
11位 就已经越界了 所以才会报错
手机号一般是用char(15)
因为国内号码是 +86后面跟11位号码 香港是+85后面跟11位号码
建议修改类型为string
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体是什么提示?看你这,似乎没错。
另外,
ss1:=StrTOInt(ss); //出错句
edit1.text:=intTOstr(ss1);
如果ss1没有他用,不如直接
edit1.text:= ss ;
另外,
ss1:=StrTOInt(ss); //出错句
edit1.text:=intTOstr(ss1);
如果ss1没有他用,不如直接
edit1.text:= ss ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询