Конференция ".Net" » Множественный оператор SELECT для DataAdapter [D2005]
 
  • oslep (14.08.05 10:42) [0]
    Дорбый день! Вот текст примера из книги Пачеко о Дельфи 8:

    program FillDataSet;

    {$APPTYPE CONSOLE}

    {%DelphiDotNetAssemblyCompiler 'c:\windows\microsoft.net\framework\v1.1.4322\System.Data.dll'}

    uses
     System.Data,
     System.Data.SqlClient;

    const
     c_cnstr = 'server=XWING;database=Northwind;Trusted_Connection=Yes';
     c_sel_emp = 'select * from Employees; select * from Customers;';
    var
     sqlDA: SqlDataAdapter;
     nwDS: DataSet;
    begin
     sqlDA := SQLDataAdapter.Create(c_sel_emp, c_cnstr);
     nwDS  := DataSet.Create;

     sqlDA.Fill(nwDS);
    end.



    Прошу обратить внимание на строчку

     
    c_sel_emp = 'select * from Employees; select * from Customers;'



    По словам автора, такой оператор возвращает две таблицы на одном объекте DataAdapter. Результат должен позволить построить отношения мастер/деталь встроенными способами. Пример приведен для класса SQLDataAdapter и сервера SQL, которым мне не доводилось пользоваться.  Аналогичный прием для InterBase/FB не проходит.
    В чем проблема? Необходимо ли применить отличный от приведенного в примере синтакс в c_sel_emp?

    ЗЫ: Долго думал, в какую конференцию кидать))
  • k2 © (15.08.05 11:16) [1]
    наверное нельзя сказать 'две таблицы на одном объекте DataAdapter', таблицы принадлежат DataSet'у. про интербэйс ничего не подскажу, но раз он не поддерживает возврат нескольких наборов данных, то построить датасет с двумя таблицами так:
    ...
     c_sel_emp = 'select * from Employees';
     c_sel_cust ='select * from Customers';
    ...
    var
     da: SqlDataAdapter;
     ds: DataSet;
    begin
     da := SQLDataAdapter.Create(c_sel_emp, c_cnstr);
     ds := DataSet.Create;
     da.Fill(ds, 'emp');
     da.SelectCommand.CommandText := c_sel_cust;
     da.Fill(ds , 'cust');
     ..
    end;
  • oslep (17.08.05 17:11) [2]

    > k2 ©   (15.08.05 11:16) [1]

    Разумеется
 
Конференция ".Net" » Множественный оператор SELECT для DataAdapter [D2005]
Есть новые Нет новых   [134430   +43][b:0][p:0.001]