parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

pf: Замучился уже

Александр Петросян (PAF) 29.09.2005 10:17

Павел, любимый, помоги:
как в обожаемом MSAccess отловить изменения в записях, не применяя форму с AfterUpdate на таблице?

пока придумалось только преобразовать таблицу к Design Master, тогда Access сам начинает вести нужные записи, но делает он это дело очень сложно.

потом придумалось подсмотреть протокол Indirect syncronization, после пары дней мучений подсмотреть удалось,
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 PUT /replicated/tst282577.tmp - 201TransporterClient
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 GET /replicated/tst282577.tmp - 200 TransporterClient
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 DELETE /replicated/tst282577.tmp - 200 TransporterClient
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 PUT /replicated/rep282642.msg - 201 TransporterClient
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 PUT /replicated/Jet282603.tmp - 201 TransporterClient
2005-09-28 13:36:25 213.152.135.71 - 213.152.134.18 80 GET /cgi/mstrai40.exe ERRORCODE=0&MESSAGEFILE=rep282642.msg&MESSAGEDBFILE=Jet282603.tmp& 200 TransporterClient
но файлы обмена оказались далеки от XML.
а на то, чтобы передать информацию "ничего тут не меняли" обожаемый Access передал 9130 загадочных байт.

остаётся попробовать подсмотреть даты обновления таблиц и в обновлявшихся подсмотреть, что менялось, заведя спецколонку(невидимую), где хранить исходный CRC от всех букв записи. тогда можно одним
select s_GUID from таблица 
where crc(текущих значений)!="исходная CRC" 
быстро достать изменившиеся.

но это медленно и не суперизящно, может что ищё можно?

P.S. всё это нужно, чтобы не писать ODBC драйвер — дело совершенно не на пару недель, которые есть.

P.P.S. это всё нужно, чтобы спрятать от пользователя сложные структуры таблиц и представить всё простым, для возможно более гибкого export/import/reporting.

P.P.P.S. да, на mssql/oracle можно было бы добиться желаемого через views+sp, но хочется, чтобы система работала на любой базе. (помню mysql5, но сами понимаете -- поддерживать 3+ варианта хранимых удовольствие ниже среднего)