2 TADOQUERY мастер и Деталь таблицы фильтра - PullRequest
0 голосов
/ 29 мая 2010

Как я могу работать с 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;

Ответы [ 2 ]

2 голосов
/ 30 мая 2010

Если в деталях вы задали источник данных для мастера, то вы можете попробовать использовать параметры в поле, которые соответствуют полю в мастере. Так что если в мастере у вас есть следующее: SELECT field1, field2, field3 FROM table Тогда в деталях у вас есть: SELECT d_field1, d_field2, d_field3 FROM detail WHERE some_field=:field1 Чтобы у параметра 'field1' было то же имя поля (field1), которое было возвращено мастером.

0 голосов
/ 30 мая 2010

Если говорить из древней истории (то есть, более пяти лет назад), способ, которым мастер / деталь обрабатывались автоматически с наборами данных VCL, заключался в установке свойств для связанных компонентов TDatasource. Смотрите здесь пример: http://delphi.about.com/library/howto/htdbmasterdetail.htm

В противном случае просто динамически измените предложение WHERE в SQL для набора подробных данных или установите свойство Filter для набора подробных данных: http://docwiki.embarcadero.com/VCL/en/DB.TDataSet.Filter

...