![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO. Присвоение результата Execute [D7]
fog © (2008-07-04 19:07:00)Возможно ли сделать за один проход следующее:
ADOCommand1.CommandText :=
'CREATE TABLE '+ d + ' (' +
'ID AUTOINCREMENT (1,1) CONSTRAINT PrimaryKey UNIQUE,'+
'Date DATETIME,' +
'Description MEMO)';
ADOCommand1.Execute;
ADODataSet1.CommandText := 'SELECT * FROM ' + d;
ADODataSet1.Open;
В этом виде работает.
ADODataSet1 := ADOCommand1.Executeвместо последних двух строк дает ошибку (при ADODataSet1.CommandText = '').
d - генерируется RT (изначально неизвестно).
fog (2008-07-04 22:30:00) [1]
> Хотя, я подозреваю какой запрос ты в ADOCommand1 запихал,
> но это сугубо твои проблемы...
запрос указан.
> запросы типа create не возвращают наборов данных.
С этого бы начать... И на том спасибо.
Плохиш (2008-07-04 22:25:00) [2]Я сегодня дважды добрый :-)
> 3. ADODataSet1.Recordset := ADOCommand1.Execute;
Для выполнения этого, в ADOCommand1 должен быть задан запрос, возвращающий набор данных, т.е. твой select, а запросы типа create не возвращают наборов данных.
Плохиш (2008-07-04 22:18:00) [3]
> fog (04.07.08 21:59) [3]
Всё прекрасно работает, как в справке и описано.
Хотя, я подозреваю какой запрос ты в ADOCommand1 запихал, но это сугубо твои проблемы...
fog (2008-07-04 21:59:00) [4]Хоть на арабском
ADOCommand1.Execute;
ADODataSet1.CommandText := 'SELECT * FROM ' + d;
ADODataSet1.Open;
работает только так.
1. ADODataSet1.CommandText := 'SELECT * FROM ' + d;
2. ADODataSet1.Open;
3. ADODataSet1.Recordset := ADOCommand1.Execute;
Без 1. и 2. получишь, что Dataset не открыт.
Без 2. - тоже самое
С 2. - "таблицы нет" (ежу понятно).
Плохиш (2008-07-04 21:40:00) [5]Я сегодня добрый, на тебе кусок из справки
Die Methode Execute kann bei bestimmten Befehlen auch ein Recordset-Objekt zurückgeben. Um dieses Objekt verwenden zu können, müssen Sie eine ADO-Datenmenge bereitstellen. Weisen Sie dann den Rückgabewert von Execute direkt der Eigenschaft Recordset der Datenmenge zu. Ein Beispiel
Плохиш (2008-07-04 21:38:00) [6]
> ADODataSet1 := ADOCommand1.Execute вместо последних двух
> строк дает ошибку (при ADODataSet1.CommandText = '').
Маразм какой-то :-( Неужели трудно в справку посмотреть? Там всего-то копи/паст надо сделать. Вот и подросло новое поколение, даже не знаю как назвать...