![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неработает ApplyUpdates(-1); [D6]
ROOT © (2006-01-11 17:58:00)Господа почему неработае метод ApplyUpdates(-1);
в TClientDataSet.
Nikolay M. (2006-01-12 13:19:00) [1]
> т.е. надо в заголовке процедуры поменять dispid 20000006;
> на safecall???
Ууу... Извини, я умываю руки.
Тебе точно рано еще лезть в трехзвенку, а читать лекции у меня нет времени :(
Читай статьи, разбирайся с примерами, с конкретными вопросами - welcome.
root (2006-01-12 12:11:00) [2]в таблицах указанны все ключевые поля итд...
ну чтоб выйти из данной ситуации укажите путь в где копать????
sniknik (2006-01-12 12:07:00) [3]> раньше я работал с данной структурой БД
т.е. структура не поменялась? просто как есть перенесена с BDE(например dBаse) в Access (ADO). так?
тогда есть одно отличие, для BDE(dBаse) значимым является порядковый номер (по нему можно однозначно идентифицировать запись. т.е. использовать вместо ключа) в Access (ADO) уже не локальная а клиент серверная архитектура (хотя он(Access) и локальный) и порядковый номер уже ничего не значит... а ключа (возможно, т.к. структура говориш не менялась) нет... вот и ошибка. (одна из...)
root (2006-01-12 12:05:00) [4]Не учиться никогда нерано
т.е. надо в заголовке процедуры поменять dispid 20000006;
на safecall???
Nikolay M. (2006-01-12 11:53:00) [5]
> Как его перекрыть????
Может, тебе рано пока с трехзвенкой ковыряться, да еще по ДКОМ-у?
type
TMyRDM = class(TRemoteDataModule, IMyRDM)
private
...
protected
...
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
procedure AS_Execute(const ProviderName: WideString;
const CommandText: WideString; var Params, OwnerData: OleVariant); safecall;
public
...
end;
root (2006-01-12 11:48:00) [6]Nikolay M. © (12.01.06 11:42) [7]
procedure AS_Execute(const ProviderName: WideString; const CommandText: WideString;
var Params: OleVariant; var OwnerData: OleVariant); dispid 20000006;
Как его перекрыть????
Кокретнее....
root (2006-01-12 11:44:00) [7]раньше я работал с данной структурой БД но вместо ODBC использовал BDE и метод ApplyUpdates работал нормально!
как то наталкивался на данную проблему(другого человека) ее решили следующим способом: написали метод на стороне сервера который коректировал ApplyUpdates для всех таблиц но как это делалось непомню подскажите!!!!
Nikolay M. (2006-01-12 11:42:00) [8]В своем RDM перекрой метод AS_Execute, посмотри, что за CommandText генерируется.
root (2006-01-12 11:11:00) [9]raised exception class EOleException with message 'Ошибка синтаксиса (пропущен оператор) в выражении запроса'
key=?
Номер точки=?
Наименование=?
...........
далее следует список всех полей таблицы к которой выполнялось ApplyUpdates
Ошибка генерируется на стороне сервера
тип базы Access-ODBC-ADO-Provider-Remote datamodul(DCOM)
Nikolay M. (2006-01-12 10:40:00) [10]
> Альф (12.01.06 09:04) [4]
Никто не хамит. Какой вопрос - такой ответ.
"У меня в подвале который год слышен странный стук, уважаемые ученые, объясните, почему он происходит" (с).
А как я объясню, что там у автора "не работает", если у всех "работает", а у него - "не работает"? Особенно в формулировке, аналогичной вопросу о водке.
Альф (2006-01-12 09:04:00) [11]У меня тоже когда-то не работало... старый глюк тянущийся еще с Delphi 3.Обновите midas.dll
Nikolay M. © (11.01.06 20:10) [2]
Хамить нехорошо....
аматор (2006-01-11 23:37:00) [12]Привет...
Попробуйте
DataSetProvider*.ResolveToDataSet := True
может поможет :)
Nikolay M. (2006-01-11 20:10:00) [13]Сначала встречный вопрос в твоем же стиле: а ты перестал пить водку по утрам?
По сабжу согласен с [1]. У всех работает.
Кстати: почему работает метод ApplyUpdates(-1) в TClientDataSet?
:)))
Desdechado (2006-01-11 18:20:00) [14]работает