VAR
STRSQL:STRINg  ;  
BEGIN
WITH ADOQUERY1 DO
BEGIN
sx:=SX+1;
IF ACTIVE THEN
ACTIVE:=FALSE;
fieldbyname('SX').ASINTEGER:=SX;
STRSQL:='SELECT 菜式.价格'+
 'AS jg'+
 'FROM 菜式'+
 'INNER JOIN 订单'+
 'ON 菜式.编号 = 订单.编号'+
 'WHERE  订单.编号 = +QuotedStr(trim(Edit1.text))+'+
 'insert into 订单 (顺序,编号,特殊要求,地址,价格)'+
 ' values (sx,'+QuotedStr(trim(Edit1.text))+','+QuotedStr(trim(Edit2.text))+','+
QuotedStr(trim(Edit3.text))+',jg)' ;//主要就这里了,我要达到的目的是 将EDIT.TEXT的数据填加到表 订单,同时用SX来达到递增1添加到顺序字段的效果 同时查询出EDIT2.TEXT里添加的编号在表菜名里对应的价格 将价格也添加到表.
close;
sql.Clear;
sql.add(STRSQL);
execsql;
ACTIVE:=TRUE;
END;
WITH ADOTABLE2 DO
BEGIN
IF ACTIVE THEN
ACTIVE:=FALSE;
ACTIVE:=TRUE;
END;
WITH ADOQUERY2 DO
BEGIN
IF ACTIVE THEN
ACTIVE:=FALSE;
STRSQL:= 'insert into 排列 (编号,特殊要求,地址)'+
 'values ('+QuotedStr(trim(Edit1.text))+','+QuotedStr(trim(Edit2.text))+','+
QuotedStr(trim(Edit3.text))+')' ;//同时还要把输入的EDIT.TEXT通过ADOQUERY2输入到排列表里来
close;
sql.Clear;
SQL.add(STRSQL);
execsql;
ACTIVE:=TRUE;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
sx:=0;
end;
达人帮忙改改
主要问题都在这段里面了
改的能运行了分都给你~
SX赋的全局函数并在打开UNIT时SX=0了
我用的VFP+DELPHI7

解决方案 »

  1.   

    VAR
    STRSQL:STRINg  ;
    BEGIN
      WITH ADOQUERY1 DO
      BEGIN
        sx:=SX+1;
        Close;
        sql.Clear;
        STRSQL:='SELECT 菜式.价格 AS jg FROM 菜式 INNER JOIN 订单 ON 菜式.编号 = 订单.编号 WHERE  订单.编号 ='+QuotedStr(trim(Edit1.text));
        sql.add(STRSQL);
        open;    STRSQL:='insert into 订单 (顺序,编号,特殊要求,地址,价格)'+
        ' values ('+QuotedStr(sx)+','+QuotedStr(trim(Edit1.text))+','+QuotedStr(trim(Edit2.text))+','+QuotedStr(trim(Edit3.text))+','+floattostr(FieldByName('jp').asFloat)+')';//jp是什么变量?
        Close;
        sql.Clear;
        sql.add(STRSQL);
        execsql;
      END;  WITH ADOTABLE2 DO
      BEGIN
        WITH ADOQUERY2 DO
        BEGIN
          STRSQL:= 'insert into 排列 (编号,特殊要求,地址)'+
          'values ('+QuotedStr(trim(Edit1.text))+','+QuotedStr(trim(Edit2.text))+','+
          QuotedStr(trim(Edit3.text))+')' ;//同时还要把输入的EDIT.TEXT通过ADOQUERY2输入到排列表里来
          close;
          sql.Clear;
          SQL.add(STRSQL);
          execsql;      Close;
          sql.clear;
          sql.add('select * from table');//查询语句
          open;
        end;
      end;
    end;
    应该类似这样
      

  2.   

    就是SQL语句的问题吧,看看楼上。
      

  3.   

    STRSQL:='insert into 订单 (顺序,编号,特殊要求,地址,价格)'+
        ' values ('+QuotedStr(sx)+','+QuotedStr(trim(Edit1.text))+','+QuotedStr(trim(Edit2.text))+','+QuotedStr(trim(Edit3.text))+','+floattostr(FieldByName('jg').asFloat)+')';//
       
    另 你打错了 不是JP 是JG 价格的意思 就是上句中 SELECT查询出来的标签大哥 这句还是不行啊
    错误提示:  INCOMPATIBLE TYPES:'STRING'AND'INTEGER'
      

  4.   

    你的另一贴中有人回了
    对于字符串,需要用QuotedStr(s) 在字符串前后加单引号,字符串中的单引号替换为2个
    对于整数,需要用IntToStr(n) 将数字转换为字符串才能够将字符串相加
    对于小数,用FloatToStr
    对于日期,用FormatDatetime