Форум: ".Net";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
ВнизМножественный оператор SELECT для DataAdapter Найти похожие ветки
← →
oslep (2005-08-14 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 © (2005-08-15 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 (2005-08-17 17:11) [2]
> k2 © (15.08.05 11:16) [1]
Разумеется
Страницы: 1 вся ветка
Форум: ".Net";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c