用ADOQUERY组件进行插入操作,但数据插入后发现长度不是所期望的 程序具体是这样写的
    adoquery2.Close;
    adoquery2.SQL.clear;
    adoquery2.sql.Add('insert data(number,state,depart,starttime,riqi,nianji) ');
    adoquery2.sql.Add('values(:a,:b,:c,:d,:e,:f)');
    adoquery2.Parameters.parambyname('a').Value:=KO;
    adoquery2.Parameters.parambyname('b').Value:='上机';
    adoquery2.Parameters.parambyname('c').Value:='应用设计系';
    adoquery2.Parameters.parambyname('d').Value:=TimeToStr(NOW);
    adoquery2.Parameters.parambyname('e').Value:=DateTimeToStr(date());
    adoquery2.Parameters.parambyname('f').Value:='04';
    adoquery2.execSQL;如果我改成
    adoquery2.Parameters.ParamByName('c').AsString:='应用设计系';
则提示没有AsString属性。如果直接用value属性,则插入的数值不是两位或10位,而是50位左右;如何解决问题?各位请帮忙

解决方案 »

  1.   

    adoquery2.Close;
        adoquery2.SQL.clear; //错误一
        adoquery2.sql.Add('insert INTO  data(number,state,depart,starttime,riqi,nianji) ');
        adoquery2.sql.Add('values(:a,:b,:c,:d,:e,:f)');
        adoquery2.Parameters.parambyname('a').Value:=KO;
        adoquery2.Parameters.parambyname('b').Value:='上机';
        adoquery2.Parameters.parambyname('c').Value:='应用设计系';
        adoquery2.Parameters.parambyname('d').Value:=TimeToStr(NOW);
        adoquery2.Parameters.parambyname('e').Value:=DateTimeToStr(date());
        adoquery2.Parameters.parambyname('f').Value:='04';
        adoquery2.execSQL;如果我改成
        adoquery2.Parameters.ParamByName('c').Value:='应用设计系';//只能用 Value如果直接用value属性,则插入的数值不是两位或10位,而是50位左右;
    与多少没有关系,只要库字段够长就行了
      

  2.   

    你使用char类型的数据,
    则如果char(50),则,你插入长度小于50时,
    最后数据长度仍然是50,
    不足的,
    被数据库服务器填充了空格。
      

  3.   

    多谢各位提醒,但仍然有疑问:为什么用table或者query组件就不会出现类似的状况呢?