关于delphi ADOquery
代码是这样的:
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、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;
[解决办法]
应该是这样才对
//假设字段名为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;
字符型需要用单括号包住。