TABLE1[1] := STRING;
我想这是一个解决办法。
还有就用QUERY通过SQL语句直接往表里写。

解决方案 »

  1.   

    改用其它类型的,有没有长字符型的,如果没有可以用Memo类型
      

  2.   

    1.妳定義為varchar(500)呢? 類存的占用量於定義長度無關,只與實際長度有關.
    2.你參考下列寫法;
     sqlinst:='insert into tab_chkduty(sta_id,chk_day,';      try
            dm.query2.close;
            dm.query2.SQL.clear;
            dm.query2.SQL.add(sqlinst);
            dm.query2.execsql;
            showmessage('您已經成功添加了一條員工的考勤信息!');
            dm.query1.close;
            dm.query1.open;
            //dm.query1.refresh;
          Except
              showmessage('數據庫錯誤!!');
          end;
      

  3.   

    一般不要使用这样长的字符类型.不同的DBMS支持的字符类型字段的最长长度是不一样的,但大都不象SQL SERVER这样长.所以在标准的数据访问引擎中一般不会考虑这样长的字段.BDE认为最长的字符字段为250字符,ODBC则认为是240字符.所以我一般最长只用到240.
    一般情况下,这样长的字段是不会用于检索条件的,你应该改用text类型,还可以节省存储空间.
    如果一定要使用这样长的字段,你改用ADO使用SQL SERVER的OLE DB引擎(注意不是ODBC的OLE DB引擎)试一试.
      

  4.   

    mrzho(mrzhou)  
    TABLE1[1] := STRING;是什么意思?能不能详细一点。 另外我不是存不进去直接写SQL是可能存入数据库的。但取数据的时候, 我用一个Query取出记录后,使用
    var
      a : string;
    begin
      ...
      a := Query1.FieldByName('a').AsString;
      这时a 的值不对。 我查了一下,Query1.FieldByName('a').AsString就不对。
      

  5.   

    你用这个来实现就行了
    TBlobField(table1.Fields[1]).AsString
      

  6.   

    plainsong(轻风) 
    使用ADO,也不行啊。
    我考虑过使用Text字段, 但处理起来比较麻烦, 而且这个字段的值99%都不超过100个字节。 但有个别的会超过250字节。
      

  7.   

    plainsong(轻风) 我试了ADO也不行,只能改为Text字段才行吗。有没有别的办法。
      

  8.   

    这是Delphi中AsString当成ShorString处理了,所以不能超过256个(从0到255),你这样试试,如果还不行,我就不知道了(我现在待的地方没有SQL库,没法试)
    读:
    a := Query1['a'];
    写:
    Query1['a']:=a;
    试试吧!!!
      

  9.   

    netlib(河外孤星)
    我试过了, 不行。
    使用Query1['a']:=a; 最终还是调用AsString的。
      

  10.   

    试试看
    var
      a : string;
    begin
      ...
      a := Query1.FieldByName('a').value;
    end;