我有如下语句:
with query1 do
begin
close;
sql.clear;
sql.add('select tjzb from t_rule_wg');
sql.add('where tjbh in ('select zxbh from t_br_temp')');
prepare;
open;
end;
这里,表t_rule_wg是sql server 2000建立的表,放在服务器上,用query1 连接;
而,表t_br_temp是用delphi6.0 的桌面数据库paradox7.0建立的,放在本地机器上,用query2(别名与query1不同)连接。执行上面语句后,得不到想要的结果。当然,可以分开查询,那样太麻烦了。有没有简单可行的啊!!谢谢各位了。谢谢。
with query1 do
begin
close;
sql.clear;
sql.add('select tjzb from t_rule_wg');
sql.add('where tjbh in ('select zxbh from t_br_temp')');
prepare;
open;
end;
这里,表t_rule_wg是sql server 2000建立的表,放在服务器上,用query1 连接;
而,表t_br_temp是用delphi6.0 的桌面数据库paradox7.0建立的,放在本地机器上,用query2(别名与query1不同)连接。执行上面语句后,得不到想要的结果。当然,可以分开查询,那样太麻烦了。有没有简单可行的啊!!谢谢各位了。谢谢。
sql.add('select tjzb from t_rule_wg');
sql.add('where tjbh in ('select zxbh from t_br_temp')');
这样怎么可以?
你可以先吧'select zxbh from t_br_temp出来的结果存放在一个数组里面。明白?
1 共享出paradox数据库,然后用sql server的行集函数opendatasource,openquery等进行联合查询
2 讲paradox数据库导入sql临时表,然后进行联合查询
3 在客户端,用两个连接/数据集,利用delphi循环或者filter达到
begin
Close;
SQL.Clear;
SQL.Add('Select Distinct tjzb From t_rule_wg');
SQL.Add(' Where tjbh In (Select * from OpenQuery(test,''Select
zxbh From t_br_temp'')');
Prepare;
Open;
end;