代码是这样的:
ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('insert into jsj615_ORDER_TEMP 
                 values(  '''+edit1.Text+''', strtoint(combobox3.Text), strtoint(edit3.Text)  )
                    ');
  ADOQuery2.Open;错误是:
在此上下文中不允许使用名称"combobox3.Text".有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。这是为何?帮忙解决下,,谢谢了

解决方案 »

  1.   

    1、SQL语句“拼接”不对
    2、insert/update语句不能用Open方法来执行//假设字段名为f1-字符型、f2-数值型、f3-数值型
    //假定数值型输入已作容错性判断
    ADOQuery2.Close;
    ADOQuery2.SQL.Clear;
    ADOQuery1.SQL.Add('insert into jsj615_ORDER_TEMP(f1, f2, f3) values('
      + QuotedStr(edit1.Text) + ', '
      + combobox3.Text + ', '
      + edit3.Text);
    ADOQuery2.ExecSQL;
    3、除了使用ADOQuery.ExecSQL来提交SQL语句,也可以使用ADOConnection.Execute('insert ....');
      

  2.   

    应该是这样才对//假设字段名为f1-字符型、f2-数值型、f3-数值型
    //假定数值型输入已作容错性判断
    ADOQuery2.Close;
    ADOQuery2.SQL.Clear;
    ADOQuery2.SQL.Add('insert into jsj615_ORDER_TEMP(f1, f2, f3) values('''
      + QuotedStr(edit1.Text) + ''', '
      + combobox3.Text + ', '
      + edit3.Text);
    ADOQuery2.ExecSQL;字符型需要用单括号包住。