Конференция "Начинающим" » Использование TADOTable [D6]
 
  • Alexei © (30.09.08 17:11) [0]
    Можно ли использовать один и тот же компонент ADOTable для запросов к различным таблицам. В своей программе использую один ADOTable для запросов к разным таблицам MS Access (внутри цикла), но после использования первого запроса (при активизации второго), программа выводит ошибку: id (первое поле первого запроса) not found. Как сделать чтобы ADOTable не проверял (не помнил) предыдущий запрос?
  • Ega23 © (30.09.08 17:15) [1]
    Не использовать ADOTable. Использовать TADODataSet со свойством CommandText
  • MsGuns © (30.09.08 17:15) [2]
    Можно, но во-первых, "старую" надо закрыть, во-вторых не использовать (или использовать со знанием) статические настройки. Перед открытием новой можно делать очистку коллекции филдов

    Ну и главное - забыть про TADOTable и использовать TADODataSet
  • stas © (30.09.08 17:31) [3]
    Alexei ©   (30.09.08 17:11)
    У тебя наверное 1-й запрос написан в дизайн-тайме и сформирован список полей.
  • Johnmen © (30.09.08 17:43) [4]

    > stas ©   (30.09.08 17:31) [3]
    > Alexei ©   (30.09.08 17:11)
    > У тебя наверное 1-й запрос написан в дизайн-тайме и сформирован список полей.

    Запрос написан в дизайн-тайме для ADOTable??? Оригинально...:)
  • Плохиш © (30.09.08 18:21) [5]

    > Alexei ©   (30.09.08 17:11)  

    У тебя ошибка в 17й строке.

    > Как сделать чтобы ADOTable не проверял (не помнил) предыдущий
    > запрос?

    ADOTable ничего не проверяет и не помнит. Это всё твоя программа делает.
  • Anatoly Podgoretsky © (30.09.08 19:38) [6]
    TADOTable с запросами не работает.
  • sniknik © (30.09.08 19:45) [7]
    > TADOTable с запросами не работает.
    работает. ;) только нафига оно надо если есть нормальный компонент.
    можно наверное даже в десигне... %), если править прямо в dfm. счас попробую...

  • > sniknik ©   (30.09.08 19:45) [7]

    Ну, "на глаз" это нензаметно.. Точно как и TTable для сиквел-серверов..:-)
  • sniknik © (30.09.08 19:57) [9]
    > если править прямо в 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'; //простой, но можно любой сложности, и с параметрами, т.е. всем что дает его предок ADODataSet
     ADOTable1.Open;
    end;

  • Anatoly Podgoretsky © (30.09.08 20:29) [10]
    > sniknik  (30.09.2008 19:45:07)  [7]

    Я не про косвенные запросы для некоторых СУБД
  • Anatoly Podgoretsky © (30.09.08 20:32) [11]

    > sniknik ©   (30.09.08 19:57) [9]

    Подцепил, а это работает для разных провайдеров, в том числе для JET и для ODBC?
  • sniknik © (30.09.08 21:01) [12]
    > Подцепил, а это работает для разных провайдеров, в том числе для JET и для ODBC?
    конечно. для всех с которыми может работать ADODataSet. (фактически это одно и тоже)
 
Конференция "Начинающим" » Использование TADOTable [D6]
Есть новые Нет новых   [134473   +33][b:0][p:0.001]