Sql:=' select '+comboBox2.text+' from '+combobox1.text+ ' where ' edit1.text; 是这个意思吗? 好多问题没考虑到:)
'select ' + comboBox2.text + ' from ' + combobox1.text + ' where ' + edit1.text zcm(我是一只猪,我有一个梦) 写的都对啊,不是这样吗?
zcm(我是一只猪,我有一个梦) ,谢谢你. 我的做法是: sql.add('select * from '+combobox1.text+'where' +combobox2.text+'='+edit1.text) 报出错.怎么回事?
二位大哥有QQ吗 咱们QQ上聊吧 那上面很流畅
如果条件是字符串,需加引号 sql.add('select * from '+combobox1.text+'where' +combobox2.text+'='''+edit1.text+'')
sql.add('select * From ' + combobox1.Text+ ' where ' + combobox2.Text + '=' + ''''+edit1.Text+'''');绝对正确 测试过的
你也可以用变量何存起来: var str :string; begin str := 'select * From ' + combobox1.Text+ ' where ' + combobox2.Text + '=' + ''''+edit1.Text+''''; sql.add(str); open; end;
搞個很詳細的給樓主! 首先!你要確保語句的正確! 先定義一個字符變量! var s:string; begin //要判斷表名不能為空! if combobox1.text='' then begin showmessage('表名為空,不能執行'); exit;//退出! end; //要判斷字段名不能為空! if combobox2.text='' then begin showmessage('字段名為空,不能執行'); exit;//退出! end; s:='select '+combobox2.text+' from '+combobox1.text+' where 1=1';//加上where方便加上別的條件!1=1確保肯定能執行! if edit1.text<>'' then //有條件時 begin s:=s+' and 條件字段='''+edit1.text+'''';//條件加入到語句中! end; query1.close; query1.sql.text:=s;//把語句寫入query控件! query1.open; end;
什么数据库不是问题,方法也很多,看你想怎么做 ① ② ③ select '+combobox2.text+' from '+combobox1.text+' where '+edit1.text+'在这个查询中①②必须这样写,③却是问题,因为你可能是查询数字或者字符,如果是字符就按现在③的写法不会错,但如果是字符就要这样来写'''+edit1.text+''' 你自己在加个控制来写两个不同查询语句来控制,如果① 不是就一个的话,建议你使用Tstringlist来写,方法如下 for i:=0 to stringlist.count-1 do s:=s+stringlist[i]; strsql:='select ' +s+' from '+combobox1.text+' where '+edit1.text+' 如果还不知道怎么写,发信给我
这是那个出错信息: [Microsoft][ODBC Microsoft Access 驱动程序]参数不足,期待是1.
是这个意思吗?
好多问题没考虑到:)
zcm(我是一只猪,我有一个梦) 写的都对啊,不是这样吗?
我的做法是:
sql.add('select * from '+combobox1.text+'where' +combobox2.text+'='+edit1.text)
报出错.怎么回事?
咱们QQ上聊吧
那上面很流畅
sql.add('select * from '+combobox1.text+'where' +combobox2.text+'='''+edit1.text+'')
测试过的
var
str :string;
begin
str := 'select * From ' + combobox1.Text+ ' where ' + combobox2.Text + '=' + ''''+edit1.Text+''''; sql.add(str);
open;
end;
搞個很詳細的給樓主!
首先!你要確保語句的正確!
先定義一個字符變量!
var
s:string;
begin
//要判斷表名不能為空!
if combobox1.text='' then
begin
showmessage('表名為空,不能執行');
exit;//退出!
end;
//要判斷字段名不能為空!
if combobox2.text='' then
begin
showmessage('字段名為空,不能執行');
exit;//退出!
end;
s:='select '+combobox2.text+' from '+combobox1.text+' where 1=1';//加上where方便加上別的條件!1=1確保肯定能執行!
if edit1.text<>'' then //有條件時
begin
s:=s+' and 條件字段='''+edit1.text+'''';//條件加入到語句中!
end;
query1.close;
query1.sql.text:=s;//把語句寫入query控件!
query1.open;
end;
忘了告诉大家了
我这是Access2000数据库.
出错是不是因为这个原因?
① ② ③
select '+combobox2.text+' from '+combobox1.text+' where '+edit1.text+'在这个查询中①②必须这样写,③却是问题,因为你可能是查询数字或者字符,如果是字符就按现在③的写法不会错,但如果是字符就要这样来写'''+edit1.text+'''
你自己在加个控制来写两个不同查询语句来控制,如果① 不是就一个的话,建议你使用Tstringlist来写,方法如下
for i:=0 to stringlist.count-1 do
s:=s+stringlist[i];
strsql:='select ' +s+' from '+combobox1.text+' where '+edit1.text+'
如果还不知道怎么写,发信给我
[Microsoft][ODBC Microsoft Access 驱动程序]参数不足,期待是1.
可能还是sql语句有问题,用query连接报错.
具体的我没记住.
就象ADO支持LIKE符吗?有没有人试过?