我的Delphi连接到一个DBF数据库,数据库中的各字段都为memo类型。
我想在里面插入一条数据;可是我用AdOQuery1.add(sqls);
sqls是连接的insert语句。
可是好像插入的时候,每一个字段不能超过256个字节,如果我的内容超过256个字符应该怎么办!sqls:
insert into table1 values('乙脑合剂','生石膏','清热泻火,通腑化瘀,豁痰开窍,定惊熄风。','乙型脑炎。症见:高热惊厥,昏迷。','方中用石膏退热除烦,清泻阳明实热为君;生地、赤芍、丹皮清热凉血为臣;知母养阴清热为佐;双钩、僵蚕、全蝎止痉熄风;菖蒲化浊开窍为使;加大黄清泄大肠之热,助石膏一臂之力,给邪以出路。全方共奏清热泻火、通腑化瘀、豁谈开窍、定惊熄风之功。','我们将白虎汤、犀角地黄汤、止痉散有机结合组成乙脑合剂,其功效是清热泻火,通腑化瘀,豁痰开窍,定惊熄风。此方重用石膏是治疗本病的关键。临床统计发现,治疗组用药后,高热、抽搐、昏迷持续天数明显较对照组短说明乙脑合剂有较好的降温作用和止痉作用。并有有效地控制高热,从而阴断惊厥和呼衰之间的恶性循环。本法为中药汤剂由口服改直肠点滴,具有设备简单,操作容易,便于推广,降温之目的。用此方治疗')

解决方案 »

  1.   

    别把这么长的字符串写作一行。 当编辑器中一行字符长度超过256,delphi编译都通不过。
    长字符串写作几行短串相加就没问题了。
      

  2.   

    不能insert超过256的字符是因为字符型不能超过256
    按照楼上说的用dbmemo好了
      

  3.   

    我靠,太让我惊讶了.没办法,分行写吧
    SQL.ADD('');
    SQL.ADD('');
      

  4.   

    他这个语句编译肯定不过,因为一个字符串太长了(超过255)。需要象前面几位说的分段加。
    sql.add('......');
    sql.add('......');
    ----------------------------------------------
                       riff ur life
      

  5.   

    分行:
    tmpQuery.SQL.Add('SELECT ItemRequiredMoney.ItemChargeID, CodeTable.CodeDescription AS ChargeRuleType, ' +
            'KindChargeRule.ChargeRuleID AS ChargeRuleID FROM CodeTable INNER JOIN CodeTableCategory ON ' +
            'CodeTable.CodeTableID = CodeTableCategory.CodeTableID INNER JOIN ItemRequiredMoney ON ' +
            'CodeTable.CodeID = ItemRequiredMoney.ChargeRuleType LEFT OUTER JOIN KindChargeRule ON ' +
            'ItemRequiredMoney.ItemChargeID = KindChargeRule.ItemChargeID WHERE ' +
            '(ItemRequiredMoney.ItemFlowID = ''' + AFlowID + ''') AND (CodeTableCategory.CodeTableName = ''收费规则类型'')');
      

  6.   

    我对数据库的评价:oracle   ---- 好大一坨垃圾
    DB2      ---- 垃圾一大坨
    sybase   ---- 一坨垃圾 
    mysql    ---- 坨坨是垃圾
    SQL SERVER --- 不知道是不是垃圾
    access..fox... ----真是垃圾 ,(地球人都知道...)
      

  7.   

    有道理:
    我感觉可能是因为是 Delphi 本身字符串长度的限制;
    最后我没有采用执行insert的方法;而是使用
    Query1中加入insert语句;Query1.insert;
    Query1.append的方法终于解决了。       sqls:='';
           sqls:='select * from '+_databasename+' where 1=2';
           form1.edit1.text:=sqls;
           form1.ADOQuery1.Close;
           form1.ADOQuery1.SQL.Clear;
           form1.AdOQuery1.SQL.Add(sqls);
           form1.AdOQuery1.open;
           Pmoinfo:=beginmoinfo;
           form1.ADOQuery1.Insert;
           i:=0;
           repeat
               form1.ADOQuery1.FieldList[i].AsString:=pmoinfo.pointFieldS.FieldS;
               pmoinfo:=pmoinfo.pointmoinfo;
               i:=i+1;
           until pmoinfo=nil;
             try
                 form1.ADOquery1.Append;
              except
                 form1.ADOQuery1.Close;
                 pmoinfo:=beginmoinfo;
                 repeat
                     pmoinfo.pointFieldS.FieldS:='';
                     pmoinfo:=pmoinfo.pointmoinfo;
                 until pmoinfo=nil;
                 Pmoinfo:=beginmoinfo;
                 main_info:='';
                 fields:='';
                 readstates:=Wilenomal;
              end;结账