Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
1-1097111765
vvip
2004-10-07 05:16
2004.10.24
Запуск одной копии приложения


1-1097529298
Интересующийся
2004-10-12 01:14
2004.10.24
Защита программы


4-1095775154
tgrey
2004-09-21 17:59
2004.10.24
консольное приложение как модуль


1-1097049347
456
2004-10-06 11:55
2004.10.24
создать кнопку (на форме) во время работы программы


14-1096902511
X9
2004-10-04 19:08
2004.10.24
Новое сокращение или долой "программно"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский