最近在做一个导入bil文件得程序,是参照vb改得,结果在导入其中一个字段的时候,出现‘013664664499 错误提示,检查后发现是数据中该字段有一条 013664664499 记录,一般该字段得值都是8位的,出现这个值后就报错。本人delphi不是很熟,char数组这里需要怎么改呢,请各位帮帮忙。
interface
  uses
   Windows,Forms,SysUtils;  Const CDR_NUMBER_LENGTH = 51;    <------这个是长度
  Const MAX_CALLID_LEN = 63;
  Const MAX_DEVICE_ID_LEN = 35;
  .......ST_XE_CDR =record                                        
    aucCallerNumber:array[0..CDR_NUMBER_LENGTH] of char;         
   aucCalleeNumber:array[0..CDR_NUMBER_LENGTH] of char;   
  .......

解决方案 »

  1.   

    在导入bil数据得时候,如果RecData.aucCalleeNumber 要读入得值是超过8位得就会报错,程序终止
    with ADOQuery1 do
        begin
          close;
          sql.clear;
          Str := 'insert   into   data(ZZHM,BJHM,HJQSSJ,HJJSSJ,THSJ,THZZYY,ZJSBIP,ZJIP,ZJSBID,BJSBIP,BJSBID,ZH)   values(''' + RecData.aucCallerNumber + ''',''' + RecData.aucCalleeNumber + ''',''' + ......
          sql.add(Str);
          execsql;
        end;直接弹出提示窗口 :‘013664664499,也就是数据中该字段得值。如果是96357412这样8位数得值就可以正常导入
      

  2.   

    你的意思是数据库里面对应的长度字段只有8个字节吗?如果是这样的话可使用Copy函数:Copy(RecData.aucCalleeNumber, 0, 8)