|
|
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
SQL-server 2000 + Access 2000, все сервис-паки. Применила уже неоднократно мной использованный способ создания АДО - рекордсета как источника подчиненной формы через вызов хранимой процедуры. Процедура достает список по накладной и довешивает к нему справочные тексты и параметры. Назначена Unique Table как всегда, но одно поле (количество штук по накладной) редактировать не удается. Ясно, что такая конструкция не позволяет изменять значения ключевого поля, но почему выдает ошибку попытка изменить значение поля, ни с чем не связанного? При этом новое значение сохраняется, но дальнейшее продолжение работы невозможно, форму приходится закрывать через десяток сообщений об ошибке, а если этот рекордсет попытаться редактировать без формы через процедуру, сообщения другие, но ошибка все равно возникает. Я не могу разобраться, в чем дело, помогите, пожалуйста. Остальные поля, кроме проблемного и ключевого, редактируются нормально. Не умею вставить здесь картинку в сообщение. Если кто-нибудь объяснит, как это делается, буду очень признательна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:38:27 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
про картинку картинку можно приложить как файл. про ошибку. без запроса (текста хп) можно гадать только. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:46:41 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#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. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:58:34 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
авторError uploading file.There is not enough space on the disk. Картинка не прикладывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:59:29 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
что-то я тут "количество штук по накладной" не опознал. Как его зовут? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:04:47 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:06:52 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
М.б. потому проблема, что Quantity упоминается в вычисляемых полях? Так Price тоже участвует в вычислениях, а с ним проблемы нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:10:25 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
вопросы - кто объявлен Unique Table (dbo.InvoicesComposition.InvoicePosition ?) - как зовут поле "количество штук по накладной" - какое определение для этого поля (не является ли оно вычислимым полем?) советы 1) для начала бы выкинул выводимую таблицу Код: plaintext 1. 2. 3. 4. 5. 6. и ее условие отбора поместил в условие отбора запроса. 2) в расчете на то, что Unique Table это dbo.InvoiceComposition и "количество штук по накладной" - обычное поле, не пересекающееся по имени с прочими полями отбора, - переписал бы запрос так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:26:55 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Victosha вопросы - кто объявлен Unique Table (dbo.InvoicesComposition.InvoicePosition ?) dbo.InvoicesComposition Victosha - как зовут поле "количество штук по накладной" есс-но, Quantity, извиняюсь за недомыслие. Victosha - какое определение для этого поля (не является ли оно вычислимым полем?) Просто поле, напрямую из таблицы, никакой экзотики. Victosha советы 1) для начала бы выкинул выводимую таблицу Код: plaintext 1. 2. 3. 4. 5. 6. и ее условие отбора поместил в условие отбора запроса. 2) в расчете на то, что Unique Table это dbo.InvoiceComposition и "количество штук по накладной" - обычное поле, не пересекающееся по имени с прочими полями отбора, - переписал бы запрос так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (с выражением лица) Так и будет, когда единственным параметром останется жить @OperationID, а идентификатором накладной - поле OperationID (без _Old и без связки по трем полям, жить старой конструкции осталось максимум неделю.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:04:41 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
"советы", я, наверно, все-таки оставил бы в силе. А по существу вопроса - не знаю. Попробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:18:52 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Попробовала, изменила SELECT. То же самое, -2147217864 Row cannot be located for update. Some values may have been changed since it was last read. [quot VictoshaПопробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity [/quot] Имеется в виду, что в SELECT'е надо вместо звездочки назвать все поля по имени? Сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:39:01 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Теперь полный перечень полей открытым текстом и простой INNER JOIN. Все равно та же ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:18:37 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТПопробовала, изменила SELECT. То же самое, -2147217864 Row cannot be located for update. Some values may have been changed since it was last read. [quot VictoshaПопробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity Имеется в виду, что в SELECT'е надо вместо звездочки назвать все поля по имени? Сейчас попробую.[/quot] нет имеется ввиду вместо ROUND(dbo.InvoicesComposition.Price,2)*Round(quantity,2) AS CostM, написать ROUND(dbo.InvoicesComposition.Price,2)*Round(dbo.InvoicesComposition.quantity,2) AS CostM, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:37:19 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Сделала. Характер поведения формы тот же самый, только перед сообщением о возможной попытке одновременного изменения данных несколькими данными выскакивает еще одно сообщение: Invalid object name 'IRowset' Что это за зверь, я не поняла. Какой-то конфликт в драйвере при обращении к серверу? Пожалуйста, подскажите, куда рыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 11:41:33 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:07:09 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
А если новую форму создать, дать ей тот же источник и зафиксировать параметры ошибка повторяется? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:11:31 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
При работе с рекордсетом через форму только набор ошибок фатальнее. Я катаю этот рекордсет через процедуру, он и в процедуре на rst.Update глючит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:17:50 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
даже не знаю, что сказать... может с команду синхронизации проверить? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:57:33 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Опять-таки, без формы и никакой команды синхронизации нет. Сам рекордсет из-под аксеса бастует и на 'IRowset' ссылается. А что это такое, я толком понять не могу и никто мне не отвечает, видать, что-то тривиальное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 15:42:55 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. Что означает ошибка Invalid object name 'IRowset' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 17:01:56 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТОпять-таки, без формы и никакой команды синхронизации нет. Сам рекордсет из-под аксеса бастует и на 'IRowset' ссылается. А что это такое, я толком понять не могу и никто мне не отвечает, видать, что-то тривиальное... так это не на форме? а при чем тогда "назначена uniquetable"? что-то я не уверен, что что-нибудь получится... покажи как формируешь, открываешь и изменяешь рекордсет... ( он должен быть adOpenKeySet, с "клиентским курсором", и заказан тип блокировки adLockOptimistic ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 17:24:34 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ну, в форме при назначении источника - стоит Unick Table, а в модельном коде, соответственно, такой параметр не нужен. Женская интуиция подсказывает мне, что проблема совсем не в форме. Полученный аксесом рекордсет больной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 20:34:38 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Скупая мужская интуиция подсказывает мне, что что-то здесь не тут. Как могут сочетаться adUseClient и adOpenDynamic? Правда не исключено, что к делу это не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 21:36:29 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
2 ЛП это точно - не относится... 2 Ольга_Т Кажется, все не так страшно, как мне сначала подумалось… Проблема, кажется, именно в Unique Table и Resync (интересно - что же это такое - образование?) Как мне показалось, Ваша процедура должна возвращать одну запись для заказанных параметров, при этом соответствующие поля не подлежат редактированию. Если эти предположения верны – то ту же процедуру можно использовать как Resync Command. Если я не прав, то желательно написать специальную процедуру, которая будет испльзоваться в этом качестве… Попробуйте так: rst.Open ("exec InvoicesCompositionP 49748, 1, 52"), conn, adOpenDynamic, adLockOptimistic, 1 rst.Properties("Unique Table")=”dbo.InvoicesComposition” rs.Properties("Resync Command") = " exec InvoicesCompositionP 49748, 1, 52" Debug.Print rst!EditionID & " " & rst!Quantity rst.MoveNext Debug.Print rst!EditionID & " " & rst!Quantity rst!Quantity = rst!Quantity + 5 rst.Update rs.Resync adAffectCurrent Debug.Print rst!EditionID & " " & rst!Quantity Это должно бы заработать… <… тут почиканы сопли…> (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 01:31:35 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Victosha Это должно бы заработать… хотя все же лучше нарисовать "честную" процедуру для синхронизации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 02:47:36 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Victosha (интересно - что же это такое - образование?) Говорят, это то, что остается, когда то, чему учили, прочно забыто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 12:46:39 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_Т Victosha (интересно - что же это такое - образование?) Говорят, это то, что остается, когда то, чему учили, прочно забыто. да уж... Зрелище скорби... Так что - "оно заработало"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 13:01:53 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Victosha Зрелище скорби... Так что - "оно заработало"? Трудное детство, деревянные игрушки, скользкий подоконник... Не получилось. Уникальная таблица не распознается. "Unique Table is nonexistent or not completely specified". Если строку rst.Properties("Unique Table") = "dbo.InvoicesComposition" опустить, то обычная ошибка "Row cannot be located for updating. Some values may have been changed since it was last read." Про IRowset в этом варианте ничего не выскакивает, наверное, это надо считать за прогресс. Я очень признательна за помощь. Нет у меня программистского образования, есть опыт работы на Access, на это я и нанималась. А приходится работать с SQL, без него никуда, и осваивать приходится на ходу, обеспечивая ежедневную работу базы. Я так и не разобралась, как работает синхронизация. Задавала вопрос на форуме, как в конкретном случае задать строку синхронизации, мне никто не ответил. Десяток форм, источники которых хранимые процедуры, работают у меня так, разницы я не заметила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:08:05 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
карандаш намусолил, язык высунул, -сидю, писю любовное письмо... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:29:19 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Вот, если писать Код: plaintext Код: plaintext то ругани по поводу уникальной таблицы нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:31:21 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТВот, если писать Код: plaintext Код: plaintext то ругани по поводу уникальной таблицы нет. :)) вот-вот - пока я напишу у тебя все заработает... ладно кладу частями.. 1) Предварительные замечания. «Специалистом» в данном вопросе не являюсь. Рассказываю, что вспомнил, из того, чего не знал. Совет давал, ковыряя в носу – сам не пробовал. Про уникальную таблицу. Возможно, имя уникальной таблицы надо задавать так rst.Properties("Unique Table") = "InvoicesComposition", а dbo он сам добавит… (У пользователя права на таблицу должны быть). У самой таблицы должен быть определен первичный ключ. Как я понимаю – составленный из одного поля. Про синхронизацию. Явная потребность в синхронизации возникает как результат комбинации потребности в обновляемом рекордсете на запросе или хранимой процедуре, построенной на соединении таблиц. В предположении, что связь один ко многим, допустимо организовать рекордсет, в котором обновляемыми окажутся поля со стороны «многие». Для этого сначала задается динамическое свойство рекордсета «Unique Table» (после его открытия). Само свойство используется в первую очередь для того, чтобы АДО догадался, какое поле в этой таблице является первичным ключем. Явно и жестко задание этого свойства необходимо в случае, когда предполагается удаление строк на рекордсете. Для Инсертов и апдейтов оно вспомогательное, и, теоретически, можно обойтись только заданием значения для динамического свойства “Resync Command” В этом свойстве указывается команда для АДО-рекордсета, которую он должен использовать для повторного считывания (единственного) экземпляра измененной или добавленной записи из таблицы, которая объявлена как уникальная - сразу после изменения или добавления. Используется свойство только на обновляемых рекордсетах, которые строятся на запросах или хранимых процедурах «с соединением таблиц». В зависимости от стиля открытия/задания строки команды sql для самого рекордсета и стиля задания команды синхронизации могут быть получены те или иные ошибки, связанные часть которых определяется ошибками в синтаксисе задания команд, а часть – несоответствиями в режимах доступа к серверу. (продолжнение следует) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:41:16 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ларчик просто открывался, сорри, что полоскала тут всем мозги. Можно было сразу вычислить, чем одно поле может отличаться от другого такого же. На этой таблице сто лет висел триггер, наш админ верит в триггеры как единственно надежное средство поддержания целостности данных. Триггер на обновление Quantity писал в ту же строку, и год с лишним это никому не мешало. Ни во View конфликтов не было, ни в процедурах все поля не выводились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:43:37 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
:)) ура значит, "продолжение" не последует... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 15:50:13 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Так я правильно поняла, что по-хорошему следует написать еще процедуру, достающую одну строку из InvoicesComposition по ее ключу RecordID? Я не понимаю, как можно в форму подвесить такую команду, ведь при обновлении рекордсета в процедуре нужное значение под рукой, а при работе в форме нужно задавать ссылку на элемент формы - а мне это не удавалось, в начале лета попробовала и бросила. Спасибо за лекцию, начинает что-то связываться, попробую еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 16:11:39 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Пожалуйста, последний рывок! rst.Properties("Resync Command") = " exec InvoicesCompositionSyncP RecordID" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. rst.Resync adAffectCurrent Получаем сообщение Error converting datatype nvarchar to int. То есть очевидно вместо значения me.RecordID в аргумент попадает "RecordID". Подскажите, пожалуйста, правильный синтаксис! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:04:37 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
точно не помню, что-то типа rst.Properties("Resync Command") ="{CALL InvoicesCompositionSyncP(?)}" вечером гляну в шпаргалку. (В хелпе на АДО были примеры) (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:28:59 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Очевидно, это изврат, засылать Resync на OnCurrent, но оно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:39:16 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Сорри, ни шиша не работает, при попытке работать со столбцами заполняет все строки одним айтемом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:40:50 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
руками ресинк вызывать не надо (без специальной потребности). Тем более на форме. Он должен "сама" работать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 18:55:49 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Не могу найти, как в форме задать ключевой параметр. В рекордсете все шоколадно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 19:03:10 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Все, спасибо, нашла. rst.Properties("Resync Command") = "exec InvoicesCompositionSyncP ?" Мне про это отвечали давно, только тогда я не поняла, о чем речь, при чем тут "?". Теперь все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 19:12:04 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТСорри, ни шиша не работает, при попытке работать со столбцами заполняет все строки одним айтемом. rs.Properties("Resync Command") = " exec InvoicesCompositionP 49748, 1, 52" Debug.Print rst!EditionID & " " & rst!Quantity rst.MoveNext Debug.Print rst!EditionID & " " & rst!Quantity rst!Quantity = rst!Quantity + 5 rst.Update rs.Resync adAffectCurrent было ведь ежели хорошенько обработать для наглядности то можно демонстрировать "как вариант редактирования нередактируемого" (с уточнением - редактирование не всех полей, критерий я пока не понял, времени не було. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 21:55:58 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ну и запары у вас... редактировать нередактируемые... А разве это так уж сложно? (не подумайте чего... я об адп) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 08:27:37 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
авторА разве это так уж сложно? а ты пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 10:06:53 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
вадяа ты пробовал? Кхм... да постоянно с этим приходится дело иметь... не хотелось бы, да приходится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 10:10:28 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
автор... да постоянно с этим приходится дело иметь... дак опиши вариант как ты выкручиваешься желательно в таком виде чтоб можно было показать для повторения вопрос появляется часто.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 11:16:18 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Вадя, если ты читал тему, основная задача - заставить работать форму, а в процедуре я просто ловила баги рекордсета. adp - конечно, стоило бы, но проблема в том, что show mast go on. Любая работа имеет свою стоимость, и масштабная переделка базы под проект означает остановку текущей работы. За это можно браться только тогда, когдя я пойму, что пары выходных или рождествеских каникул мне хватит. Иначе это может обойтись слишком дорого. Ясно, что сбои гарантированы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 11:25:55 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_Тмасштабная переделка базы под проект означает остановку текущей работы. За это можно браться только тогда, когдя я пойму, что пары выходных или рождествеских каникул мне хватит. Это значит - никогда Причем чем дольше текущий проект развивается в формате mdb - тем более категоричным становится "никогда" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 11:28:16 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
1 я полностью согласен с ЛП (в очередной раз... хи-хи) 2 тему я понял. просто решение конкретного вопроса частным образом позволит show mast go on, вопрос о редактировании... очень актуален для всех. и если коллективными усилиями удастся создать правило для его решения позволит и тебе пары выходных или рождествеских каникул мне хватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 12:00:43 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
вадядак опиши вариант как ты выкручиваешься желательно в таком виде чтоб можно было показать для повторения вопрос появляется часто.. можно сделать поля свободными, а можно указать unique table (однозначная таблица) unique table работает только для невычисляемых полей. Вот их можно свободными забацать. А на событии ПослеОбновления Выполнять необходимый апдейт соответствующих записей из таблицы (таблиц). Сложнее с ленточной формой. Там со свободными полями не получится. В ленточной форме я обычно выкручиваюсь таким макаром: Чаще всего бывает, что в ленточной форме, для минимизации и конкретизации используются запросы, представляющие данные из таблицы (таблиц) в компактном виде. Вычисляемые поля не редактируются. Есть мысль, что можно поизвращаться с событиями, но мне этого не требовалось пока. Я для редактирования (если полей в таблице гораздо больше, чем возможно разместить в ленту) создавал простую форму, где собирал все поля из исходного набора (обычно это целиком или почти целиком таблица (лучше view из таблицы)) А внешние ключи - комбобоксы с источниками из связанных таблиц. Там редко когда приходилось пользоваться свободными полями. И в основном только для отображения они нужны были. По результатам обновления - ресинк ленточной (текущей записи) или откат и не ресинк, если пользователь отменил изменения. Да, чтоб пользователя не смущать, убираю кнопки перехода по записям с этой формы. Вышеуказанное работает при нормальной структуре БД. Когда отношения между таблицей, что на форме к справочным - многие к 1 Ну вот, Вадя, как смог, ответил. Что знал, сказал. Все (или почти все) относится к АДП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 12:15:56 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Да, раз пошла такая тема, скажу еще про фильтрацию... Как известно (БОЛ), лучше всего использовать серверный фильтр для фильтрации данных в форме из набора recordsource. Так вот, по событию ПрименитьФильтр (ApplyFilter), я преобразую строку фильтра к формату SQL Server и помещаю в ServerFilter и me.Refresh (или Form_подчиненная_форма.ServerFilter и Form_подчиненная_форма.Refresh) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 12:27:05 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
своя лепта у меня был источник для лест формы на ХП из кучи таблиц нада было редактировать поле не из уникальной табл. , при этом добавлялись ключевые поля и т.д. , в общем стандартные средства отказались работать. но в поле изменять можно бвло - ругань только при выходе из поля, при сохранении изменений. вышел след образом: на событие поля после обновления - запускал хранимку с параметрами , которая делала что - нада (не триггер) . потом ресинк текущей зааписи. эффект интересный : в форме продолжает отображаться запись , которая при рефреше формы должна пропасть!!! т.е. можно сделать откат, изменив поле обратно. не используя транзакции. применений этому можно найти без труда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 13:33:59 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Да, бывает, когда поле берется из другой таблицы, и для него еще ключ сперва надо проставить... Я инсерт при этом запускал. Простой инсерт с ключом на текущую запись. Хуже бывает, когда ключ не сформирован еще, а надо данные по этому, несформированному ключу уже куда-нибудь положить. Боролся я, боролся, но лучшего, чем написать триггер, не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 14:08:45 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Беда еще в том, что я до сих пор не сообразила, как проект коннектить к серверу. То ли админ мне прав не расписал, и я не умею объяснить, какие мне на это нужны права, то ли я не туда и не так пишу логин, но только под моим логином проект к базе не вяжется (самое смешное, что под админским тоже). Разбираться в этом времени хронически нет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 15:10:34 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
там же все просто... Файл-подключение Первое - название сервера... обычно совпадает с названием компа в сети Тип логина: виндушная или скуэль серверная аутентификация (я предпочитаю вторую) вводишь юзер нэйм, пароль... если правильно, список баз данных сервера в выпадающем списке должен быть... выбираешь нужную БД и применить... При виндушной аутентификации логин и пароль не спрашивают На каком этапе то не выходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2004, 17:52:18 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1670298]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 327ms |

| 0 / 0 |
