Конференция "Corba" » Как дождаться завершения работы TADOQuery.ExecSQL [Delphi, Windows]
 
  • Сергей М. © (23.08.07 14:12) [20]

    > или все же нужно через TClientDataSet?


    Вовсе не обязательно.

    Здесь важно чтобы формат данных, возвращаемых процедурой/функцией апп-сервера, соответствовал формату данных, предусмотренных св-вом Data объекта TClientDataSet, который ты используешь на стороне клиента для получения и отображения рез-в той самой требуемой тебе выборки.
  • yuray © (23.08.07 14:50) [21]
    2 Сергей М.
    Спасибо за ответы. Очень помогли.
  • DUDAS © (28.08.07 17:19) [22]

    > yuray ©   (23.08.07 13:57) [19]
    >
    > Большое спасибо за ответ. Все работает. Только GetLinks
    > написал как процедуру с использованием ТADOQuery.
    >
    > procedure TrdmServer.GetLinks(out Data: OleVariant);
    > begin
    >   ADOQuery1.Open;
    >   Data:=DataSetProvider1.Data;
    >   ADOQuery1.Close;
    > end;
    >
    > На клиенте работаю так
    >
    > procedure TfmClient.BitBtn1Click(Sender: TObject);
    > var
    >   data:OleVariant;
    > begin
    >   Server.GetLinks2(data);
    >   MyClientDataSet.Data := data;
    > end;
    >
    > Так правильно или все же нужно через TClientDataSet? Есть
    > ли в этом случае принципиальная разница?
    > <Цитата>
    >
    > Сергей М. ©   (23.08.07 14:12) [20]
    >
    >
    > > или все же нужно через TClientDataSet?
    >
    >
    > Вовсе не обязательно.
    >
    > Здесь важно чтобы формат данных, возвращаемых процедурой/функцией
    > апп-сервера, соответствовал формату данных, предусмотренных
    > св-вом Data объекта TClientDataSet, который ты используешь
    > на стороне клиента для получения и отображения рез-в той
    > самой требуемой тебе выборки.


    Здравствуйте!
    Возможно вопрос не в тот форум, но всетаки...
    А если результат такой выборки нужно отобразить на клиенте в C#, можно ли использовать свойства стандартных объектов C# аналогичные MyClientDataSet.Data?  
    Или есть другие решение, например через Array...
  • Сергей М. © (29.08.07 09:29) [23]

    > можно ли использовать свойства стандартных объектов C# аналогичные
    > MyClientDataSet.Data?


    Откуда там возьмутся "аналогичные" ?


    > есть другие решение, например через Array


    Можно и через array.

    Собссно изнутри св-во Data и представляет собой ничто иное как массив.
  • yuray (15.01.08 12:16) [24]

    > Большое спасибо за ответ. Все работает. Только GetLinks
    > написал как процедуру с использованием ТADOQuery.
    >
    > procedure TrdmServer.GetLinks(out Data: OleVariant);
    > begin
    >   ADOQuery1.Open;
    >   Data:=DataSetProvider1.Data;
    >   ADOQuery1.Close;
    > end;
    >
    > На клиенте работаю так
    >
    > procedure TfmClient.BitBtn1Click(Sender: TObject);
    > var
    >   data:OleVariant;
    > begin
    >   Server.GetLinks2(data);
    >   MyClientDataSet.Data := data;
    > end;


    Столкнулся с проблемой EOleException "Out of memory" когда передаю DataSet с сервера на клиент. Очень много данных… Как бороться? Спасибо.
  • Сергей М. © (15.01.08 14:26) [25]

    > Как бороться?


    Возвращать НД не весь целиком, а фрагментами, по мере навигации удаленного клиента по возвращаемому НД.
  • yuray (15.01.08 15:49) [26]
    Тоесть, так просто писать нельзя...

      ADOQuery1.Open;
      Data:=DataSetProvider1.Data;
      ADOQuery1.Close;

    Интересно, а как определять оптимальный объем фрагмента?
  • Сергей М. © (15.01.08 16:07) [27]
    Т.е. ты утверждаешь, что упомянутое тобой исключение возникает именно при выполнении строчки


    > Data:=DataSetProvider1.Data;


    ?
  • umbra © (15.01.08 17:26) [28]
    Как дождаться завершения работы TADOQuery.ExecSQL



    TADOQuery.AfterInsert

    не поможет?
  • yuray (15.01.08 17:36) [29]
    Да. Поможет. Проблема была в другом. Этот вопрос закрыт.
 
Конференция "Corba" » Как дождаться завершения работы TADOQuery.ExecSQL [Delphi, Windows]
Есть новые Нет новых   [120350   +20][b:0][p:0.001]