![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК: Структура результата Query без ожидания его окончания [D6, MSSQL]
BlackTiger © (2002-10-04 13:30:00)Как получить колонки разультата запроса, на дожидаясь его полной отработки. Что-то ничего, кроме "SELECT TOP 1 * FROM Table", не приходит в голову. Хотя мне кажется (глюки?) что я видел функцию LoadFields или что-то вроде того, да и сама дельфа это делает.
Если запрос сложный и долгий, то дважды открывать его - слишком жирно.
Может его как-то прервать можно, или сказать "дай структуру, но не давай данных".
sniknik (2002-10-04 14:20:00) [1]через получение схем. не прерывая запрос а запросом на структуру, ну понятно.
для примера
ADOConnection1.OpenSchema(siColumns, VarArrayOf([Unassigned, Unassigned, SelectedTable, Unassigned]), EmptyParam, FieldSchema);
if FieldSchema.Locate("COLUMN_NAME",ListBox2.Items[Index], []) then begin
sFieldName:= FieldSchema.Fields[0].AsString;
sType:= FieldSchema.Fields[1].Text;
sSize:= FieldSchema.Fields[2].AsString;
sPrecision:= FieldSchema.Fields[3].AsString;
sScale:= FieldSchema.Fields[4].AsString;
end else begin
sFieldName:= "Not Find. Sorry.";
sType:= "";
sSize:= "";
sPrecision:= "";
sScale:= "";
end;
FieldSchema здесь ADODataSet c структуру можеш посмотреть в дельфийском примере по ADO (с таким же названием).
BlackTiger (2002-10-04 13:44:00) [2]КАНЭЧНО через АДО! Как сама дельфа это делает?
Она же даже из запроса типа "EXEC sp_get_some_data" получает поля результата ОЧЕНЬ быстро, хотя полностью сам запрос выполняется довольно долго. Как она его прерывает?
sniknik (2002-10-04 13:39:00) [3]можно вообще без запроса. через адо работаеш?