读书人

关于delphi ADOquery解决方案

发布时间: 2012-02-21 16:26:23 作者: rapoo

关于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方法来执行

Delphi(Pascal) code
//假设字段名为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;

字符型需要用单括号包住。

读书人网 >.NET

热点推荐