|
|
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Можно ли как-то в ленточной форме с необновляемым набором перехватить ее реакцию на попытку обновления записи? Дело в том, что необновляемый набор получился вследствии перевода MDB в ADP ( в MDB запрос был обновляемым и ленточная форма для его редактирования очень естественно для его использовалаь). Хотелось бы как-то перехватывать попытку пользователя обновить/удалить/добавить запись и далее в своем обработчике с помощью INSTEAD OF UPDATE,DELETE,INSERT триггера на View формы модифицировать т.о. базовые таблицы View, затем делать requery источника формы. Пока я это все делаю вызовом на каждой записи по кнопке отдельной дополнительной формы для редактирования, от чего и хотелось бы избавиться, т.е. сделать редактирование таким же естественным , как это было прежде в MDB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 01:14:42 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
yunikiнеобновляемый набор получился вследствии перевода MDB в ADP А если все-таки бороться с причиной и вынести текст запроса сюда и попытаться сделать его обновляемым? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 01:55:59 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Можно ли как-то в ленточной форме с необновляемым набором перехватить ее реакцию на попытку обновления записи? Если набор необновляемый - то никакой попытки обновления и не будет. И реакции не будет. Чего перехватывать-то собрались??? И уж тем более дело никогда не дойдет до триггеров Instead Of ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 02:23:30 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Темный > Я не случайно рассказал о том, как он был получен - в MDB все работало прекрасно, поэтому его не надо делать обновляемым, ибо - невозможно. Это 4 таблицы, связаные отношениями один много, через LEFT JOIN. 2 Лох Позорный > Если набор необновляемый - то никакой попытки обновления и не будет. И реакции не будет. Чего перехватывать-то собрались??? Ну может это и не реакция для Вас, но когда я нажимаю клавишу для редактирования значения в поле этого запроса, то в строке статуса пишется - "Данный набор записей не допускает обновление". Вот от это то и хотелось бы перехватить.НО я так чувствую, что не удастся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 13:16:04 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Хорошо, а почему тогда нельзя применить представление с INSTEAD OF триггерами (и не забыть добавить в его описание WITH VIEW_METADATA)? Поскольку, как я тоже полагаю, сообщение "Данный набор записей не допускает обновление" вряд ли можно перехватить, то нужно "обмануть" Access, чтоб он "думал", что источник записей обновляемый, а собственно обработку изменений данных возложить на сервер. Тоже, конечно, не панацея, но, может, для конкретной задачи и подойдёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 13:34:03 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
присоединюсь к Темному если в mdb обновлялся, то в adp тоже должен обновляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 13:44:25 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
ADP строже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 13:52:23 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Скорее всего надо просто разобратся и грамотно заполнить свойства UniqueTable & ResyncCommand На крайний случай можно сделать фичу аля .net сделать свободные контролы парные контролам с данными спрятать из на задний план при получении фокуса контролом с данными копировать его содержимое в парный свободный и передавать фокус на него фокус на AfterUpdate свободного контрола повесить код который будет сливать содержимое на сервер и обновлять строку рекордсета(Recordset.Resync AffectRecords, ResyncValues) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 14:22:17 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Тимур Рахимов > Хорошо, а почему тогда нельзя применить представление с INSTEAD OF триггерами (и не забыть добавить в его описание WITH VIEW_METADATA)? Так я так и делаю, правда не знаю пока что такое WITH VIEW_METADATA? Так и делаю только вопрос не в этом , а как сделать редактирование таким же естесственным , как это было в MDB. 2 ищ> если в mdb обновлялся, то в adp тоже должен обновляться ну вроде хотя бы с моих описаний видно , что это не так - К СОЖАЛЕНИЮ ! 2 Latuk > Списибо еще раз, так как я уже видел ваш пост на подобную тему где-то и почти так и сделал, но вопрос оказывается не в этом , а в том что в ленточной форме это (подкаладка полей , передача фокуса,...) невозможна, и приходится открывать отдельный бланк для редактирования каждой записи, что по сравнению с Access MDB пользователю жутко неудобно - он уже привык к свободному редактированию в ленточной форме - В ЭТОМ ДЕЛО ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 15:04:37 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
More 2 Latuk > Скорее всего надо просто разобратся и грамотно заполнить свойства UniqueTable & ResyncCommand Это , если Вы обратили внимание на то , какой запрос, - неприемлемо, ибо - невозможно использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 15:06:22 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
More 2 Тимур Рахимов > Хорошо, а почему тогда нельзя применить представление с INSTEAD OF триггерами (и не забыть добавить в его описание WITH VIEW_METADATA)? Я не очень понятно ответил, т.к. забыл еще одну неприятную вещь - ДАЖЕ если использовать триггер INSTEAD OF на необновляемый вью в форме, - все равно запрос остается необновляемым !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 15:12:13 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
yuniki2 Тимур Рахимов > Хорошо, а почему тогда нельзя применить представление с INSTEAD OF триггерами (и не забыть добавить в его описание WITH VIEW_METADATA)? Так я так и делаю, правда не знаю пока что такое WITH VIEW_METADATA? Эта опция представления ( CREATE VIEW ... WITH VIEW_METADATA ) - совершенно необходимая вещь для решения поставленной задачи. Если её опустить, то шибко умный Access вместо обращения к view как к единой таблице будет пытаться напрямую обращаться к таблицам, его составляющим. А поскольку способ соединения таблиц в нём заведомо не позволяет обновление (иначе зачем INSTEAD OF триггеры городить?), то не преуспеет в этом. Наберите в этом форуме в качестве строки поиска VIEW_METADATA и прочитайте всё снизу доверху. Если останутся вопросы (что маловероятно), я на них отвечу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 15:14:26 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
на каком основании ты решил, что "невозможно использовать" обновление? а я считаю, что возможно и у меня работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 15:34:02 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
> а в том что в ленточной форме это (подкаладка полей , передача фокуса,...) невозможна Ето что за новости такие , почему ето невозможна у мине усе работает именно в ленточной форме (может имелась ввиду табличная) вот еще вариант для тех кто очень хочет "как в mdb" создать рядом mdb создать в ем табличку с требуемыми полями слить туды результат запроса открыть на ей рекордсет открыть на ем форму при закрытии измененные записи слить на сервер получится этакий аналог датасета из нета PS WITH VIEW_METADATA не поможет редактировать сложную вьюху глюпый аксес се равно прочухает внутренние таблички и потребует иметь пермишины на SELECT на все таблицы содержащиеся в FROM иначе набор будет не редактируемым редактироввать через представление не имея SELECT на таблицу можно только вьюхи имеющие FROM из одной таблицы (по крайней мере в 2002-м) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:02:30 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Тимур Рахимов > Эта опция представления (CREATE VIEW ... WITH VIEW_METADATA) - совершенно необходимая вещь для решения поставленной задачи. Если её опустить, то шибко умный Access Попробовал - все равно даже при просмотре этого View в окне представлений (я уж не говорю о ленточной форме) Access при попытке редактирования говорит, что "Данный набор записей не доаускает обновление" . Хотя это View прекрасно в EM от MsSQL 2000 редактируется как надо. 2 Latuk> Ето что за новости такие , почему ето невозможна у мине усе работает именно в ленточной форме (может имелась ввиду табличная) Да я не понимаю, как это может быть - о чем ты говоришь ? В ленточной форме находится РЯД записей , а не одна запись, - если одна - нет проблем! (Это вроде уже мной как-бы давно пройдено.) Так вот - при размещении в области данных свободного поля после его отображения во всех записях будет светиться в нем одно и то же!!! Это и мешает в ленточной форме!!! PS WITH VIEW_METADATA не поможет редактировать сложную вьюху глюпый аксес се равно прочухает внутренние таблички и потребует иметь пермишины на SELECT на все таблицы содержащиеся в FROM иначе набор будет не редактируемым При чем тут пермишины - я разве сказал , что их нет на базовые таблицы вьюхи ? они у меня есть на все таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:18:43 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 ищ > Я ни в коей мере не покушаюсь на то, что у тебя работает, по поводу своего случая я все описал - что и почему, а вот что у тебя - непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:20:49 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Еще вариант, почти как у Latuk: освобождать рекордсет формы от сервера и делать его обновляемым. Как именно - было уже куча примеров. После обновления нужного контрола посылать команду на обновление на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:32:21 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Как оторвать, знаю. А как сделать обновляемым оторванный рекордсет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:34:12 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
otto_kreiz> Еще вариант, почти как у Latuk: освобождать рекордсет формы от сервера и делать его обновляемым. Мда-уж... - распространись , плиз, подробнее и потом, что тут похожего на вариант Latuka ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:50:19 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
"по поводу своего случая я все описал - что и почему, а вот что у тебя - непонятно" это у тебя ничего непонятно. ты нам не привел ни строчки кода, ни команды синхронизации ни однозначной таблицы, а тока даешь нам свои пространные рассуждения. никакой конкретики. тебе уже надавали кучу советов, а у тебя мозги никак не просветлеют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 16:51:15 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
зачем так нападать юноша? Вы же ничего не поняли из всего топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 17:09:22 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Думаю, Ищ прав - необходимая информация для того, чтобы начать решать задачу самостоятельно, здесь уже давно присутствует. Всё же считаю нужным уточнить свой совет: WITH VIEW_METADATA - необходимый элемент для "обновляемости", но не единственный. В частности, чтобы Access решил, что представление обновляемое, ему для какой-то надобности требуется, чтобы в его список полей были включены primary key (или UNIQUE INDEX ) всех таблиц, участвующих в представлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 17:09:54 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Тимур Рахимов > ему для какой-то надобности требуется, чтобы в его список полей были включены primary key (или UNIQUE INDEX) всех таблиц, участвующих в представлении а вот это уже что-то забрезжило... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 17:42:37 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
тут светом его обливают а он: "забрезжило". брезжи-брезжи. может и озарит как-нибудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 17:56:24 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
На этом пути встретятся ещё проблёмы. Я о них говорить не стал, в надежде, что вы с ними не столкнётесь. Будем надеяться на лучшее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 17:59:57 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Только не понятно - каким должны быть свойства уникальная таблица и команда синхронизации для запроса из 4 таблиц : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 18:09:44 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
(Подпрыгивая от нетерпения) А меня, а меня! Как оторванный делать обновляемым ? Кода! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 18:10:45 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Ты скажи - как его отрывать - то собираешься - отсоединенный набор записей что-ли делать предлагаешь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 18:16:54 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>при размещении в области данных свободного поля после его отображения >во всех записях будет светиться в нем одно и то же!!! Это и мешает в >ленточной форме!!! Э не кычи так дарагой,все слишу,все панимаю. все можна,все полющиса вай Ключевой слов "на задний план" контрол непривязанный к данным выскочит напередний план только в текущей строке в остальных строках будет виден контрол привязанный к данным Но я табе советую разобратся с командой синхронизации однозначная таблица Контакты судя по всему у нее (смотрите почти пелепят свездочку наскрось вижу) есть таки поле id и наверное оно счетчик и наверное оно ключевое значится как будет команда синхронизации Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. PS не забудь что пермишны надо раздать на все таблицы ну да не дошел наверно до этого еще из под овнера наверно базу юзаеш. не допреш сам полож ADP-ник с формой и бакап базы , с таблицами из запроса и небольшим кол-вом тестовых данных покажу как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 20:27:21 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
после беглого прочтения... Темный yunikiнеобновляемый набор получился вследствии перевода MDB в ADP А если все-таки бороться с причиной и вынести текст запроса сюда и попытаться сделать его обновляемым? истина ЛПЕсли набор необновляемый - то никакой попытки обновления и не будет. истина ЛП И реакции не будет. Чего перехватывать-то собрались??? реакция будет- ошибка формы её и обрабатывать запустить ХР с параметрами в ней вставить в нужные поля нужных таблиц в нужном порядке нужные значения, чтоб сохранить все связи и целостность данных. потом сделать ресинк одной записи как пример обновление данных в ленточной форме на основе SP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 20:37:40 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Не получилось из меня телепата надо было сразу картинки включить (почему то когда нажимаеш ответить картинки не отображает) в общем тама два ключевых поля значит в WHERE будет два "?" к этим полям кстати совсем не обязательно вообще обращать на них внимание поскоку каманду синхронизации можно формировать без параметров (на текущая запись) заполняя ее строкой с любым Where главное чтобы FROM был такой-же кстати еще не ясно какую таблицу хотелось редактировать может тоже промахнулся тута можно и до Клиенты добратся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 20:55:30 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk > Ключевой слов "на задний план" А как на задний план ? я это делаю так : создаю парный свободный контрол, отодвигаю старый привязанный, на его место ставлю парный свободный, после чего заслоняю его старым привязанным И результат - при отображении на форме видны все свободные парные контролы из-под привязанных !!!!! Хотя я их даже по размерам меньше сделал Еще событие такое есть : Код: plaintext 1. 2. 3. 4. вот и рис показывает это Я бы сказал, что ключевой слов еще и "передача фокуса" однозначная таблица Контакты судя по всему у нее (смотрите почти пелепят свездочку наскрось вижу) есть таки поле id и наверное оно счетчик и наверное оно ключевое Не совсем - по рисунку же видны ключевые поля,они жирные.И потом не понятно все равно с однозначной таблицей - ведь она предназначена ТОЛЬКО для правки в ЕЕ полях, а нужно во ВСЕХ полях запроса ( ну, точнее, всех, кроме Expr1,Expr2,Expr3 ),т.е. всех таблиц ! Как в этом случае этот механизм будет работать - не понятно! А ну вот увидел твое кстати еще не ясно какую таблицу хотелось редактировать еще раз скажу - все поля всех таблиц. совсем не обязательно вообще обращать на них внимание поскоку каманду синхронизации можно формировать без параметров (на текущая запись) заполняя ее строкой с любым Where неясно - как с любым? Как запись-то обновляемая определится? PS не забудь что пермишны надо раздать на все таблицы ну да не дошел наверно до этого еще из под овнера наверно базу юзаеш. Опять пермишны?! Я уже говорил, что все роздано - при чем вообще здесь пермишны? Юзаю под sa. 2 Вадя > после беглого прочтения... после беглого прочтения высказывания неудачные - читай внимательнее посты и мои ответы на них (а топик приведенный я уже читал вчера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 01:16:56 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Почему dbo.Клиенты INNER JOIN dbo.Контакты ? думаю неоднозначность здесь, нужно dbo.Клиенты RIGHT OUTER JOIN dbo.Контакты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 02:30:20 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2yuniki >Не совсем - по рисунку же видны ключевые поля,они жирные я ж поправился потом,просто у меня рисунки отключены были. Предложение: >полож ADP-ник с формой и бакап базы , >с таблицами из запроса и небольшим кол-вом тестовых данных >покажу как. остается в силе проблемма твоя решается стандартным способом за 5 минут. не забудь сказать поля какой таблицы собираешся редактировать PS Если будеш посылать на мыло из профиля предупреди на форуме ато это у меня мусорный ящик (редко заглядываю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 09:02:14 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
после более спокойного прочтения... у тебя есть форма на ХП не обновляемая? (ну такая получилась .., при переносе из мдб) тебе нада её редактироватьь как в мдб? тебе важен способ как ты этого достигнешь, или конечный результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 10:27:02 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> Да ты скажи, лучше как дубликатный контрол-то подложить - видишь же на картинке, что у меня получилось. Пошли пример, на yuniki@rambler.ru. Если ты предлагаешь послать для того, что сказал PS не забудь что пермишны надо раздать на все таблицы ну да не дошел наверно до этого еще из под овнера наверно базу юзаеш. не допреш сам полож ADP-ник с формой и бакап базы , с таблицами из запроса и небольшим кол-вом тестовых данных покажу как. На это я ответил выше.Т.е. я не понимаю, что ты предлагаешь раздать, если и так все роздано. 2 Вадя> Конечно способ важен и результат, способ нужно чтобы был минимально трудозатратным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 11:32:27 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> Все таки послал я тебе на avrallv@mail.ru свой пример, посмотри , плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 12:14:59 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> не забудь сказать поля какой таблицы собираешся редактировать Так как я уже говорил - все поля в запсиси на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 12:17:29 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
To Программист-любитель: Dim cn As ADODB.Connection Set cn = CurrentProject.Connection Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim SQL as String SQL = "любой самый что ни на есть необновляемый запрос, включая группировки и т.п." rs.CursorLocation = adUseClient 'Обязательно курсор клиентский rs.Open SQL, cn, adOpenStatic, adLockOptimistic, adCmdText Set rs.ActiveConnection = Nothing 'убиваем соединение Set Me.sfWHDets.Form.Recordset = rs Set rs = Nothing теперь подформа sfWHDets.Form стала обновляемой, в том числе можно удалять записи. Естественно, база на сервере ничего об этом не узнает, с ней нужно работать отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 12:39:19 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
yuniki родной, ты когонибудь кроме себя слушаеш или нет? как сделать тебе давно уже сказали может на пальцах понятнее станет в прикрепленном файле бакап базы и ADP-к (дал бы свой я бы у табе поправил а так извиняй за тестовые имена) Форма1 - стандартный подход со строкой синхронизации с параметрами Форма2 - Свободный контрол(Поле16) спрятанный под контрол с данными (Name1) Поверь мне между "заслоняю его старым привязанным" и "на задний план" есть разница Форма3 - динамически формируемая команда синхронизации без параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 13:10:14 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Естественно что редактировать можно только те поля со стороны LEFT & RIGHT Для которых существует запись в соотв таблице отсутствие оных надо проверять отдельно PS В примере ошибка СохраненнаяПроцедура1 переименовать в Форма1Resync ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 13:22:57 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> yuniki родной, ты кого--нибудь кроме себя слушаешь или нет? Что же я не слушаю, вроде как это на мои ответы реакции нет. Например, ты хотел получить от меня посылку, я тебе ее отправил, но ты почему-то не отвечаешь, я тебя спрашиваю по 2 раза - зачем пермишны, ты твердишь про них вновь, не глядя на то, что я тебе ответил про них ответил, хотя и без ответов ясно, что незачем упоминать про пермишны. Про то, что подложить свободный контрол мне не удается , ты тоже не реагируешь, и все это оказывается я никого не слушаю, а не наоборот. Про то, что надо все поля всех таблиц на форме редактиорвать ты тоже ноль внимания Про команду синхронизации с запросом из 4 таблиц (поля всех, что показаны на форме, надо обновлять) - тоже ноль. Ну так и как же тут вести беседу? Мда... , закачал твой файл - сплошной облом : 1) у меня Access2000 2) ResyncSQL.Bak - не хочет Restore'иться , хотя ,например, мои базы нормально восстанавливаются. Поверь мне между "заслоняю его старым привязанным" и "на задний план" есть разница Ты на словах просто скажи в чем разница и как ее достигнуть. PS: Ты получил мой-то файл на свой e-mail из профиля? Да , последний твой пост прочитал, сделай поправку на это в том , что сказал выше . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 14:10:31 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2yuniki смотри мыло там твой пример исправленный >Ты на словах просто скажи в чем разница и как ее достигнуть. заходиш в конструктор формы Ставиш курсор на контрол с данными Ctrl-C , Ctrl-V получаеш дубль стираеш у него привязку к данныи получаеш свободный контрол кладеш его на контрол сданными и выравниваеш по краям чтобы парные контролы оказались точно друг над другом ставиш курсор на свободный контрол формат - на задний план ВСЕ Но это табе не надо, а надо просто заполнить строку синхронизации обычным стандартным образом (см Гетца том 2) форма сама возьмет значения ключевых полей из текущей строки и подставит их в комманду синхронизации вместо "?" единственное что может понадобится это проконтролировать редактирование полей со стороны LEFT & RIGHT Для которых отсутствует запись в соотв таблице и либо добавлять ее либо запрещать редактирование этих полей (например с помощью условного форматирования) но как правило такого не бывает потому что редактируется только одна таблица остальные же используются как справочники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:00:29 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>Мда... , закачал твой файл - сплошной облом : Почитай правила оформления топиков там сказано что если хочеш избежать проблемм подобных этой то должен указать версии своего ПО естественно обломился у меня Acc2002 & MSSQL2000SP3a 2000 не самый лучший вариант для разработки ADP До SP2 работать с ним практически не возможно Да еще забудь про VIEW_METADATA оно тебе тоже пока не надо его юзают тока при продвинутой безопастности когда стандартных пермишинов не хватает для ограничения доступа юзеров к таблицам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:09:56 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk > кладеш его на контрол сданными и выравниваеш по краям чтобы парные контролы оказались точно друг над другом ставиш курсор на свободный контрол формат - на задний план Ну вот опять непонятки - что значит формат на задний план ? А вообще ты же можешь у моего 2000 посмоотреть, он же возьмется 2002. Я все вроде так и сделал, как ты говорил. Да еще забудь про VIEW_METADATA оно тебе тоже пока не надо А без него и не идет нормальный вариант, предложенный Тимур Рахимов . Это самый простой способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:19:16 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Да , Access2000+SP3 у меня , SQL Server2000 +SP3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:20:05 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk > К сожалению, твою посылку на мыло не получил, потому что редактируется только одна таблица остальные же используются как справочники Вот из этого могу сделать вывод , что насчет команды синхронизации ничего сделать невозможно , так как у меня редактируются поля трех таблиц ( уже в n-й раз повторяю) в одной записи на форме.(Так было в MDB) Хотя , наверное , насчет этого надо отдельный топик сдлеать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:28:11 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
yunikiМожно ли как-то в ленточной форме с необновляемым набором перехватить ее реакцию на попытку обновления записи? Дело в том, что необновляемый набор получился вследствии перевода MDB в ADP ( в MDB запрос был обновляемым и ленточная форма для его редактирования очень естественно для его использовалаь). Хотелось бы как-то перехватывать попытку пользователя обновить/удалить/добавить запись и далее в своем обработчике с помощью INSTEAD OF UPDATE,DELETE,INSERT триггера на View формы модифицировать т.о. базовые таблицы View, затем делать requery источника формы. Пока я это все делаю вызовом на каждой записи по кнопке отдельной дополнительной формы для редактирования, от чего и хотелось бы избавиться, т.е. сделать редактирование таким же естественным , как это было прежде в MDB. а Однозначная таблица (Unique Table) Вы меняли? (сорри, всего не читал, может, уже обсуждалось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:28:42 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
А вообще ты же можешь у моего 2000 посмоотреть, он же возьмется 2002. Я его уже посмотрел исправил и отправил назад >К сожалению, твою посылку на мыло не получил, ок щаз попробую с другого ящика >Вот из этого могу сделать вывод , что насчет команды синхронизации ничего сделать невозможно Вывод неправильный (см пример) редактировать можно все поля кроме тех которые со стороны LEFT & RIGHT Для которых отсутствует запись в соотв таблице но иэто можно обойти включив в запрос ключевые поля этих таблиц и проверяя их на NULL при попытке редактирования добавлять соотв запись в соотв таблицу команда синхронизации нужна только для отображения результата редактирования на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:39:07 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>Ну вот опять непонятки - что значит формат на задний план ? Это пункты меню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 15:48:02 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
За картинку спасибо, подготовил уже было пост А ну вот, вроде понял, как поместить на задний план контрол: оказывается , если на форме уже есть контрол, то вновь создаваемый нельзя засунуть под него нужно, таким образом , всегда вначале создать контролы заднего плана, а затем уже те, что будут их заслонять , наоборот не получается. (т.е. если дословно следовать шагам , приводлимым Latuk, то не получится, нужно наоборот, хотя у него Access2002, может там есть какой-то формат, который позволяет поместить на задний план...) Может я не прав, но пока это решение. Меня это ,конечно, сильно сбило , поэтому этот способ и получался. Но теперь с этим все OK. команда синхронизации нужна только для отображения результата редактирования на форме. Я понимаю, так вот пока не могу усечь , как добиться этого отображения для всех затронутых редактированием записей. мыла пока нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 16:15:20 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Форму Контакты_Q3 исправил Контакты1 -стандартный подход со строкой синхронизации с параметрами Контакты2 - динамически формируемая команда синхронизации без параметров см событие текущая запись WHERE Может быть любым каким захочеш главное чтобы запрос вернул строку с тем же перечнем полей и FROM бал такой же как у источника формы Выполни скрипт и создаш в своей базе ХП и вьюху Привяжи ADP к своей базе PS все я пошел пить пиво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 16:45:57 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2yuniki ты бы скинул и мне бэкар базы и адп всё не нада только по теме чё-то заинтриговали мыло в профиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 19:29:18 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> Спасибо, пример твой рассмотрел, НО , как , оказалось, он не дает решения о котором идет речь, приведены просто известные стандартные варианты редактирования полей одной уникальной таблицы , и о чем тогда копья ломать было ? Другими словами у меня был такой пост : потому что редактируется только одна таблица остальные же используются как справочники Вот из этого могу сделать вывод , что насчет команды синхронизации ничего сделать невозможно , так как у меня редактируются поля трех таблиц ( уже в n-й раз повторяю) в одной записи на форме.(Так было в MDB) Хотя , наверное , насчет этого надо отдельный топик сдлеать. ты на это ответил Вывод неправильный (см пример) редактировать можно все поля кроме тех которые со стороны LEFT & RIGHT Для которых отсутствует запись в соотв таблице но иэто можно обойти включив в запрос ключевые поля этих таблиц и проверяя их на NULL при попытке редактирования добавлять соотв запись в соотв таблицу И попробуй в своем примере отредактиовать поле КонтЛица.ФИО - получишь сообщение "Допускается измененение только полей из уникальной таблицы", а уникальную-то ты задал "Контакты". Поле КонтЛица.ФИО не подпадает под твои условия LEFT & RIGHT (см выше) Короче вопрос с командой синхронизации остается - а именно можно ли ее использовать для случая обновления записей после редактирования нескольких полей из разных баз Видимо, свойство уникальная таблица уже не понадобиться , т.к. придется делать триггеры INSTED OF и вью с VIEW_METADATA . А иначе никак не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2004, 20:22:30 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>И попробуй в своем примере отредактиовать поле КонтЛица.ФИО - получишь сообщение У меня поле КонтЛица.ФИО легко редактируется и в Acc2002 и в Acc2003 возможно это спецефическая реакция 2000-го Из каких соображений выбран для разработки Acc2000 ? Там ADP-к откровенно сырой. но это легко обойти например как в примере от вадя сливать изменения самому используя для накопления данных свободный контрол и запуская динамически свормированную команду синхронизации для отображения изменений на форме или с подкладыванием свободного контрола у тебя тоже так и не получилось? Даже если совершенно необходимо сделать именно для Acc2000 то это тоже легко достаточно запустить профайлер и перенести реакцию Acc2002 на редактирование полей типа КонтЛица.ФИО на события после редактирования свободных контролов подложенных под поля соотв поля хотя я бы подумал всетаки о переходе для разработки ADP на Acc2002-2003 где все работает и так. в Acc2002 и в Acc2003 однозначная таблица используется только для того чтобы форма поняла значения ключевых полей из какой таблицы подставлять в качестве параметров в команду синхронизации. >Видимо, свойство уникальная таблица уже не понадобиться , т.к. придется делать >триггеры INSTED OF и вью с VIEW_METADATA . А иначе никак не получается. Для начала научись пользоватся простыми вещами. То как ты заполнил свойство команда синхронизации в своей форме (см. форму Контакты из примера) обнажает полное непонимание в этом вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2004, 13:34:29 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> 1) У меня поле КонтЛица.ФИО легко редактируется и в Acc2002 и в Acc2003 A что в A2002 свободно редактируются, добавляются,удаляются ВСЕ поля в предложенной мной форме Контакты ? 2) Даже если совершенно необходимо сделать именно для Acc2000 то это тоже легко достаточно запустить профайлер и перенести реакцию Здесь не понял , как и для чего ты предлагаешь профайлер 3) То как ты заполнил свойство команда синхронизации Это была просто попытка - посмотреть, что будет. В своем понимании я руководствуюсь Help A2000, в котором сказано , что МОЖНО РКДАКТИРОВАТЬ ТОЛЬКО ПОЛЯ ОДНОЗНАЧНОЙ ТАБЛИЦЫ. А что, Help A 2002 в этом месте другой что ли - я не думаю... 4) я бы подумал всетаки о переходе для разработки ADP на Acc2002-2003 где все работает и так Да , хорошо бы и так, но это надо переносить все наработки Office'ных приложений из 2000 в 2002, которых у меня немало, и я знаю, например, что Excel'ские у меня не переносились в XP например, как в 2002 будут - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2004, 20:24:20 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2yuniki смотри почту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2004, 21:10:45 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
так там оба файла есть и бекап C4 и ADP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2004, 23:00:57 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>A что в A2002 свободно редактируются, добавляются,удаляются ВСЕ поля в предложенной мной форме Контакты ? редактируются свободно , но в сделанных мной формах Контакты1 и Контакты2 c правильной командой синхронизации удаляются строки из однозначной таблицы свободно в принципе если стандартная реакция не подходит довольно легко сделать реакцию на удаление такой как хочется добавлятся мешают индексы по полям не присутствующим на форме думаю это не большое препятствие >Здесь не понял , как и для чего ты предлагаешь профайлер Запускаеш профайлер запускаеш Acc2002 Юзаеш форму и смотриш какие команды выполняются на сервере при редактировании тех или иных полей прописываеш их для Acc2000 вручную например при редактировании поля ФИО в моей форме Контакты1 происходит следущее Код: plaintext 1. 2. 3. 4. 5. 6. >Это была просто попытка - посмотреть, что будет. Не знаю чем ты руководствовался но когда в твоей форме Контакты я вижу что RecordSource=ResyncCommand=UniqueTable="Q1View" я делаю соотв. выводы >Help A 2002 в этом месте другой что ли - я не думаю На заборе тоже написано,а попробывать слабо? >но это надо переносить все наработки Office'ных приложений из 2000 в 2002 Во первых не такая уж и большая переделка (в отличии скажем от 97->2000) Во вторых что мешает юзать оба аксеса одновременно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2004, 14:10:16 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
2 Latuk> 1) Насчет >И попробуй в своем примере отредактиовать поле КонтЛица.ФИО - получишь сообщение У меня поле КонтЛица.ФИО легко редактируется и в Acc2002 и в Acc2003 возможно это спецефическая реакция 2000-го Это не просто "спецефическая реакция 2000-го" , это ,как написано в его Help, принципальный момент, т.е. в A2000 запрещается редактировать любые поля , кроме полей уникальной таблицы. А A2002, кроме всего прочего, у меня нет, так , что в его Help на этот счет сказано, не могу посмотреть, и ты, вообще говоря,тоже об этом молчишь. Хотя то, что у тебя редактируется в A2002 поле ФИО конечно смущает. Кстати, насчет перехода на A2002 (уж тогда логичнее сразу весь Office 2002), это не так просто - нужно весь завод будет переводить, а там есть и слабые компы, которые могут не потянуть, да и сам объем работы не маленький, не говоря уж о том, что нужно будет убедить народ. 2) перенести реакцию Acc2002 на редактирование полей типа КонтЛица.ФИО на события после редактирования свободных контролов подложенных под поля соотв поля Тут тоже обнаружил проблемы - если делать me.Recordset.update ПОСЛЕ редактирования свободных контролов, то получится, что источник 2 раза апдейтится, второй раз будет при выходе из текущей обновленной записи - форма сама еще раз проапдейтит его, а это нехорошо как-то. Вообще - то на этот счет мне непонятно : Как вообще в ленточной форме явно апдейтить запись, т.е. на какие события формы надо делать me.Recordset.update , можно ли менять свойства Me.Recordset.LockType ,Me.Recordset.CursorType ,me.RecordsetType , как организовать явную транзакцию в форме. Т.е. когда форма сама оптимистическим способом занимается обновлением источника, то этих вопросов нет, а когда явно это нужн осделать самому, то тут - проблемы. 3) И вот еще что - ResyncCommand должна задаваться в синтаксисе T_SQL ? Ну, например, WHERE с константой datetime как " WHERE Дата = '" & Format(Me.Дата, "mm.dd.yyyy") & "'" PS. Пока бьюсь в 2000-м - сделал вариант с триггером INSTEAD OF UPDATE, View ... WITH VIEW_METADATA , поля на форме стали редактироваться, правда при этом пришлось их обрабатывать как свободные контролы. Все в форме редактируется, запись в базе обновляется, но при этом выходит, зараза, сообщение, что "Данные, добавленные в базу данных, не будут отображены в форме, так как они противоречат условиям на базовый источник записей." Делаю me.Requery в Form_AfterUpdate - не помогает .Точнее говоря, туда и не приходит управление. Результат правки (корректный надо сказать) виже после перезагрузки формы, UniqueTable можно при WITH VIEW_METADATA поставить только Q1View , а ResyncCommand вообще не ставлю, так как в Help сказано, что она отвечает только за правильиное отображение записи после редактирования, а я этог же могу добиться с помощью me.Requery для формы, вот только приведеное выше зараза не дает это сделать (но не при любых правках,и когда дает , то все OK). Вот таки дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2004, 18:19:38 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>но при этом выходит, зараза, сообщение Патамушта >ResyncCommand вообще не ставлю и это совсем не то же самое что me.Requery >там есть и слабые компы, которые могут не потянуть, Не баись у мине 2002-й работал на P1-200 под Win98 даже быстрее чем 2000-й >да и сам объем работы не маленький если хотябы Win2K то все можно сделать не отрываясь от стула плагин скриптами на крайний случай есть рунтайм версия которая пакуется в инсталятор делов останется - запустить у юзера под админскими правами Чаво админа нет? Все сам делаеш? >ResyncCommand должна задаваться в синтаксисе T_SQL это запрос не важно как оформлен (ХП или строка) должен иметь FROM такой же как у источника, и возвращать одну строку с таким же кол-вом и типом полей как у источника формы. Если использовать параметры "?" то форма подставит туда значение ключевых полей однозначной таблицы почитай у Гетца хорошо описанно. >" WHERE Дата = '" & Format(Me.Дата, "mm.dd.yyyy") & " почитай FAQ PS Голова болит а руки делают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 08:48:56 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
>ResyncCommand должна задаваться в синтаксисе T_SQL ? конкретно для твоего случая SELECT * FROM Q1View WHERE [Дата]=? AND [IdKlienta]=? или для динамической сборки без параметров поскольку у табе id счетчик для однозначной идентификации строки будет вполне достаточно Me.ResyncCommand="SELECT * FROM Q1View WHERE " & Me!id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 09:00:35 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
поправочка Me.ResyncCommand="SELECT * FROM Q1View WHERE id=" & Me!id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 09:01:57 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
А вот это уже интересно ! Возникает такой интересный вопрос по этому поводу : Если Resync делается c помощью Select * from Q1View ..., а Q1View состоит из нескольких таблиц, то какие поля и в каком порядке будут образовывать там "первичный ключ" , ведь именно это определяет то, как задавать параметры в ResyncCommand ????????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:44:18 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
Наверно еще нужно добавить, что у меня однозначная таблица Q1View, по другому при при WITH VIEW_METADATA нельзя, и если как ты пишешь Если использовать параметры "?" то форма подставит туда значение ключевых полей однозначной таблицы почитай у Гетца хорошо описанно. то и возникает вопрос какие поля и в каком порядке будут ключевыми в этом случае ? Это, как японимаю, для задания параметров посредством "?" важно . PS. Если бы у меня еще и Гетц был ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:58:47 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
если форма не может определить ключевые поля для однозначной идентификации строки она делает фильтр по всем полям Код: plaintext 1. а заполнять команду синхронизации динамически Private Sub Form_Current() Me.ResyncCommand = "SELECT * FROM Q1View WHERE id=" & Me!Id End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 13:38:20 |
|
||
|
в ленточной форме с необновляемым набором перехватить реакцию на попытку обновления записи
|
|||
|---|---|---|---|
|
#18+
для однозначной идентификации строки она делает фильтр по всем полям Да я тоже это увидел в профайлере, но это для Update , а если посмотреть , что будет при me.recordset.Resync adAffectCurrent , то оказывается , что даже при при такой провокационной команде, как Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. IdДолжность,IdКонтЛица,Дата,IdKlienta,КрНаим т.е. НЕ ВСЕ при синхронизации она использует, а только необходимые, Это кстати, вроде как способ, в этой ситуации разобраться как задавать ResynCommand c "?" А насчет " твоем случае гораздо проще не парится с таким кол-вом параметров а заполнять команду синхронизации динамически" - это я тоже понял, что красивее это и использую. Просто по поводу неявной параметризации было интересно - ее ведь не надо формировать динамически, что есть преимущество , форма сама сформирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:18:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1669942]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
101ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 343ms |

| 0 / 0 |
