请问各位老师们,我用的access数据库,在表1中用了一个备注类型的字段,主要是存储联系客户的内容,我用sql语句写了一段,主要是来修改联系内容语句,
 Query2.Close;
 Query2.SQL.Clear;
 Query2.SQL.Add('update khxxgl set lxnr=:memo');
 Query2.ParamByName('memo').asstring:=memo1.Text;
 Query2.ExecSQL;
在一定的字段长度内,该语句执行成功,但字段超出一定的长度就会出现如下错误:
General SQL error
[Microsoft][ODBC Microsoft ACCESS 驱动程序]非法的描述器索引
[Microsoft][ODBC Microsoft ACCESS 驱动程序]非法的精确度数值
请问各位老师如何解决,能详细说明一下吗?学生万分感激,在线等待,急!急!急!

解决方案 »

  1.   

    是不是因为内容超出你的字段长度?!================================================================
         ◆◆◆ CSDN查询助手,查询方便快捷 ◆◆◆ 下载地址:  
     http://CoolSlob.ifood1.com/Download/CSDNFinder.exe  
     http://CoolSlob.8u8.com/Download/Tools/CSDNFinder.Slob[更名为.exe即可]  
      

  2.   

    Query2.Close;
     Query2.SQL.Clear;
     Query2.SQL.Add('update khxxgl set lxnr='+#39+memo1.Text+#39);
     Query2.ExecSQL;
      

  3.   

    你说的一定长度多长?
    一般Delphi的字符串string长度为256个字节,超出这个长度在参数传递中可能回出错?不行就试试下边的 :
     Query2.Close;
     Query2.SQL.Clear;
     Query2.SQL.Add('update khxxgl set lxnr='+QuotedStr(memo1.Text));
     Query2.ExecSQL;
      

  4.   

    access的数据库字段类型中memo 应该是65535个字符,但不能超过255(我认为这是access的不足)也就是说你的用memo类型不起作用,只能相当于文本类型,你可以看看帮助“备注   长文本或文本和数字的组合。 最多为 65,535 个字符(如果 Memo 字段是通过 DAO 来操作并且只有文本和数字 [非二进制数据] 保存在其中,则 Memo 字段的大小受数据库大小的限制)。 ”  引用Access帮助。
      

  5.   

    将Query2.ParamByName('memo').asstring:=memo1.Text;
    改为Query2.ParamByName('memo').value:=memo1.Text;
    试一试
      

  6.   

    Query2.SQL.Add('update khxxgl set lxnr='+QuotedStr(memo1.Text));试试?
      

  7.   

    set lxnr=:memo
    这是什么意思?有没有搞错.
      

  8.   

    用:
    query2.parambyname('memo').asblob := memo1.lines.text; 
    试试。