Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

TProvider.ApplyUpdates   Найти похожие ветки 

 
Dixi ©   (2004-10-12 16:35) [0]

Необходимо узнать формат пакета данных клиентского набора данных, в частности формат возвращаемого значения данного метода (см. тему).


 
Sandman25 ©   (2004-10-12 16:40) [1]

формат возвращаемого значения данного метода  - longint, 4 bytes, signed


 
Dixi ©   (2004-10-12 16:50) [2]

function TProvider.ApplyUpdates(Delta: OleVarant; MaxErrors: Integer; out ErrorCount: Integer); OleVariant;
Возвращаемый результат - это вариант (массив байт в варианте). Меня не тип данных интересует, а формат, в котором нужно данные в  вариант запихать и далее в клиентский набор данных вернуть.


 
Romkin ©   (2004-10-12 16:56) [3]

Сам формат закрыт, но это - delta :))
А обрабатывается этот результат в обработчике OnReconcileError, пихать-то зачем?
см demos\midas\alchtest, там все видно, как делать


 
Romkin ©   (2004-10-12 16:58) [4]

А, у тебя D3?! ох... Я бы не советовал там копаться с провайдерами


 
Sandman25 ©   (2004-10-12 16:58) [5]

Спутал с TClientDataSet.ApplyUpdates, прошу прощения.


 
Dixi ©   (2004-10-12 17:12) [6]

Проблема вот в чем:
Пишу, значит, своего провайдера. В справке написано, что в случае неудачи, т.е. если ErrorCount > MaxErrors, изменения проходить не должны (откатываю транзакцию), и в качестве результата должна вернуться delta целиком. Самый простой вариант проверки - это сразу вернуть дельту. Однако на этом все и заканчивается, метод завершается корректно (т.е. результат в клиентский НД возвращается), но возникает исключение "Mismatch in datapacket". Нужно узнать что возвращать в качестве результата.

На счет OnReconcileError: до этого обработчика дело в моем случае не доходит, т.к. возвращаемый пакет данных неправильного формата.


 
Sandman25 ©   (2004-10-12 17:20) [7]

[6] Dixi ©   (12.10.04 17:12)

Вы неправильно делаете ИМХО. Почитайте про TProvider.BeforeUpdateRecord


 
Dixi ©   (2004-10-12 17:32) [8]

Нет такого обработчика в D3.

Да и если бы был, то что? Мне нужно написать своего провайдера, т.е. реализовывать ApplyUpdates все равно нужно...


 
Romkin ©   (2004-10-12 17:37) [9]

ЗАчем тебе свой провайдер?! Смотри исходники, там все есть


 
Dixi ©   (2004-10-12 17:39) [10]

Чтобы через ADO работать.

Там не все есть, там исходников DBClient.dll нет :)


 
Romkin ©   (2004-10-12 17:45) [11]

Dixi ©  (12.10.04 17:39) [10] Вот именно :)) В них вся и суть. Но я не уверен, что тебе надо переписывать именно провайдер, скорее - датасет свой написать надо, с которым он работать будет.
А что, возможности перейти хотя бы на Delphi5 нет?


 
Dixi ©   (2004-10-12 17:49) [12]

Если бы она была, возможность эта :)

Romkin © (12.10.04 17:45) [11] А ты считаешь проще TClientDataSet переписать? Я с тобой не согласен :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1097494831
Рафик
2004-10-11 15:40
2004.10.24
Алгоритм "Метод наименьших квадратов"


1-1097178595
dms_main
2004-10-07 23:49
2004.10.24
Application.minimize


3-1096446465
zorik
2004-09-29 12:27
2004.10.24
Округление в Firebird


1-1097248865
DelphiLexx
2004-10-08 19:21
2004.10.24
Создать секцию для общедоступных переменных


9-1088280771
ALexb
2004-06-27 00:12
2004.10.24
delphix





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский