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位不行,请问怎么办
展开
 我来答
黄毅毅
2013-02-04 · TA获得超过185个赞
知道答主
回答量:182
采纳率:0%
帮助的人:51.9万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovesky0414
2013-02-04 · TA获得超过3353个赞
知道大有可为答主
回答量:1610
采纳率:66%
帮助的人:1595万
展开全部
报错是因为越界
delphi中integer的取值范围是 -2147483648 .. 2147483647
10位 因为是1开头所以 不会报错
11位 就已经越界了 所以才会报错
手机号一般是用char(15)
因为国内号码是 +86后面跟11位号码 香港是+85后面跟11位号码
建议修改类型为string
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
springerCS
2013-02-04
知道答主
回答量:17
采纳率:0%
帮助的人:15.6万
展开全部
具体是什么提示?看你这,似乎没错。
另外,
ss1:=StrTOInt(ss); //出错句
edit1.text:=intTOstr(ss1);
如果ss1没有他用,不如直接

edit1.text:= ss ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式