-
Можно ли использовать один и тот же компонент ADOTable для запросов к различным таблицам. В своей программе использую один ADOTable для запросов к разным таблицам MS Access (внутри цикла), но после использования первого запроса (при активизации второго), программа выводит ошибку: id (первое поле первого запроса) not found. Как сделать чтобы ADOTable не проверял (не помнил) предыдущий запрос?
-
Не использовать ADOTable. Использовать TADODataSet со свойством CommandText
-
Можно, но во-первых, "старую" надо закрыть, во-вторых не использовать (или использовать со знанием) статические настройки. Перед открытием новой можно делать очистку коллекции филдов
Ну и главное - забыть про TADOTable и использовать TADODataSet
-
Alexei © (30.09.08 17:11)
У тебя наверное 1-й запрос написан в дизайн-тайме и сформирован список полей.
-
> stas © (30.09.08 17:31) [3]
> Alexei © (30.09.08 17:11)
> У тебя наверное 1-й запрос написан в дизайн-тайме и сформирован список полей.
Запрос написан в дизайн-тайме для ADOTable??? Оригинально...:)
-
> Alexei © (30.09.08 17:11)
У тебя ошибка в 17й строке.
> Как сделать чтобы ADOTable не проверял (не помнил) предыдущий
> запрос?
ADOTable ничего не проверяет и не помнит. Это всё твоя программа делает.
-
TADOTable с запросами не работает.
-
> TADOTable с запросами не работает.
работает. ;) только нафига оно надо если есть нормальный компонент.
можно наверное даже в десигне... %), если править прямо в dfm. счас попробую...
-
> sniknik © (30.09.08 19:45) [7]
Ну, "на глаз" это нензаметно.. Точно как и TTable для сиквел-серверов..:-)
-
> если править прямо в dfm. счас попробую...
не получается ;(, приведение типа не знаю как там сделать...
в рантайм легко.
type
TADOTable = class(ADODB.TADOTable);
TForm1 = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
procedure Button1Click(Sender: TObject);
private
public
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.CommandType:= cmdText;
ADOTable1.CommandText:= 'select * from Main';
ADOTable1.Open;
end;
-
> sniknik (30.09.2008 19:45:07) [7]
Я не про косвенные запросы для некоторых СУБД
-
> sniknik © (30.09.08 19:57) [9]
Подцепил, а это работает для разных провайдеров, в том числе для JET и для ODBC?
-
> Подцепил, а это работает для разных провайдеров, в том числе для JET и для ODBC?
конечно. для всех с которыми может работать ADODataSet. (фактически это одно и тоже)