我在oracle数据库中有个Number类型的字段,字段名叫:u_meterid,长度为12位,
现往u_meterid字段中写入了一个值:123456789010但在前端我用delphi读取出的该值却是:-1097262574
请问这是为什么?
如何才能正常读出该值?
谢谢。附delphi中我的读法:
s_u_meterid:Integer;
s_u_meterid:=dm.ADOqry.FieldByName('u_meterid').AsInteger;
showmessage(inttostr(s_u_meterid);
s_u_meterid的值显示为:-1097262574

解决方案 »

  1.   

    s_u_meterid:DWord;     //改变一下类型
    s_u_meterid:=dm.ADOqry.FieldByName('u_meterid').AsInteger;
    showmessage(inttostr(s_u_meterid);
    s_u_meterid的值显示为:-1097262574
      

  2.   

    s_u_meterid:Int64;
    s_u_meterid:=dm.ADOqry.FieldByName('u_meterid').value;
      

  3.   

    123456789010 这里需要40位数来保存数据,Integer只有32位,
    我上面的方法都不行的,定义没错,不过要想办法把dm.ADOqry.FieldByName('u_meterid')
    转成正确的类型!
      

  4.   

    chenzhuo(睡到自然醒),你好:
      我用s_u_meterid:DWord
    显示出的值又变成:3197704722
    请问这是为什么呀?
    谢谢。
      

  5.   

    如果你只是为了显示的话,可以这样!showmessage(dm.ADOqry.FieldByName('u_meterid').AsString);
      

  6.   

    如果想得到一个这样的整数的话s_u_meterid:Int64;
    s_u_meterid:= StrToInt64(dm.ADOqry.FieldByName('u_meterid').AsString);
    showmessage(inttostr(s_u_meterid);
      

  7.   

    非常感谢,是这样搞定了。
    把它当成字符型的就行了。
    s_u_meterid:string;