我如何使用2 Tadoquery并像Tadoquery(主)Tadotable(细节)一样工作!!
var tempvar : Variant;
begin
Edit1.text:=Ano.value;
Begin
with Ano_planeamento do //Laço de consulta por codigo
Begin
Close;
SQL.Clear;
SQL.Add('SELECT * from planeamento_ano');
SQL.Add('Where ano LIKE ''%'+Edit1.text+'%''');
Open;
end;
end;
tempvar := Ano_planeamento.fieldbyname('ano').value;
planeamento.close;
if tempvar <> null then
begin
planeamento.SQL.Clear;
planeamento.SQL.add('SELECT * FROM planeamento');
planeamento.SQL.add(' WHERE ano = ');
planeamento.SQL.add('''' + tempvar + '''');
// here i nead to filter by ....
planeamento.open;
答案 0 :(得分:2)
如果在详细信息中将数据源设置为主数据,则可以尝试使用与主数据库中的字段匹配的detial中的参数。因此,如果在主人中你有以下内容:
SELECT field1, field2, field3 FROM table
然后在细节中你有:
SELECT d_field1, d_field2, d_field3 FROM detail WHERE some_field=:field1
这样参数'field1'与从主服务器返回的字段(field1)的名称相同。
答案 1 :(得分:0)
从古代历史(即五年前)开始,使用VCL数据集自动处理主/细节的方法是在相关的TDatasource组件上设置属性。请参阅此处以获取示例:http://delphi.about.com/library/howto/htdbmasterdetail.htm
否则只是动态更改SQL中的WHERE子句以获取详细数据集,或者在详细数据集上设置Filter属性:http://docwiki.embarcadero.com/VCL/en/DB.TDataSet.Filter