首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

咨询函数参数传递有关问题

2012-03-25 
咨询函数参数传递问题我的表单有5个下拉框,每个下拉框都从数据库表填充其ITEMS,我想写一个函数来实现,函数

咨询函数参数传递问题
我的表单有5个下拉框,每个下拉框都从数据库表填充其ITEMS,我想写一个函数来实现,函数如下(上帖函数的错误已纠正):


问题:
下面get_list函数已经正确,但是,调用函数时却出错了,不知道怎么修改,即:
get_list('table1',dls); //执行到该句时为什么出错,提示:不正常地定义参数对象。提供了不一致或不完整的信息。


参数说明:
'table1'是ORACLE的一个表名
dls是下拉框的name值,类型为TComboBox


get_list函数如下:
procedure TForm3.get_list(ta:string; xlk:TComboBox);
//ta ---- ORACLE表名
//xlk ---- TComboBox类型的下拉框
begin
  adoquery1.Connection:=datamodule2.to_xdcx;
  with adoquery1 do
  begin
  Close;
  form3.ADOQuery1.sql.Clear;
  form3.ADOQuery1.sql.Add('SELECT * FROM :ta WHERE state=''F0A''');
  form3.ADOQuery1.open;
  form3.ADOQuery1.first;
  while not eof do
  begin
  xlk.Items.Add(fields[0].asstring);
  next;
  end;
  xlk.itemindex:=0;
  end;
end;

[解决办法]
form3.ADOQuery1.sql.Add('SELECT * FROM :ta WHERE state=''F0A''');改成
form3.ADOQuery1.sql.Add('SELECT * FROM ' + ta + 'WHERE state=''F0A''');
[解决办法]
delphi表名不可作为SQL参数传递的
且你程序中没的定义参数
form3.ADOQuery1.sql.Add('SELECT * FROM ' + ta + ' WHERE state=:stat'
ADOQuery1.Parameters.ParamByName('stat').Value:=Quotedstr('F0A'); //这个可以

热点排行