проблема с TableUpdate | |
---|---|
SergN Автор |
подскажите как обмануть Фокс (9я версия)
есть табличка t_group с полями group_id, type_id, group как я понимаю "group" не очень хорошее название для поля но так уж есть и над ней построено локальное представление 'group_v' когда я делаю UPDATE group_v ; SET group_v.group = tmp1 ; WHERE group_id = thisform.cmdEditGroup.Tag TABLEUPDATE(.t.,.t.,'group_v') =AERROR(err) то TABLEUPDATE возвращает FALSE, а массив err содержит запись об ошибке №10 "syntax error" она возникала сначала при простом update пока я не поменял значение поля group на group_v.group а вот как можно обмануть TABLEUPDATE, чтобы он все-таки сбросил буфер? |
Re: проблема с TableUpdate | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Может я что-то не понимаю, а зачем собсно делать UPDATE по ЛВ? Не проще-ли сразу UPDATE для таблицы, а затем REQUERY?
------------------ Без коментариев.. |
Re: проблема с TableUpdate | |
---|---|
SergN Автор |
ЛВ предполагается потом заменить на Remote View
так что надо вьюхи оставить |
Re: проблема с TableUpdate | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Может возникнуть такая ситуация, что Вы не сможите использовать Remote View для просмотра и редактирования удаленных данных. Как пример, ситуация в нашей (где я работаю) корпоративной сети, а именно сервер под ORACLE, без регистрации с помощью ХП, вообще не получишь доступа к данным, т.е. все попытки построить Remote View в дизайнере безуспешны. Только непосредственные запросы через SQLEXEC.
------------------ Без коментариев.. |
Re: проблема с TableUpdate | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Цитата: А не надо в командах SQL использовать ключевые слова типа ThisForm. Используй переменные памяти:
|
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
А почему в качестве первого параметра функции логическое значение?
Там должно быть 0,1 или 2. И необязательно форсировать апдет... RTFM. |
Re: проблема с TableUpdate | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Не должно.
For compatibility with previous Visual FoxPro applications, the nRows parameter also accepts False (.F.) and True (.T.) instead of 0 and 1 respectively. When specifying 0 or 1 for nRows, the record pointer remains on the record where changes could not be committed. |
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
да, логично судя по тексту программы, проблем быть не должно,
видимо дело в самом view. |
Re: проблема с TableUpdate | |
---|---|
SergN Автор |
Про заключение в транзакции я в курсе, просто не стал их здесь указывать
замена thisform..... на локальную переменную памяти m.tmp2 ничего не дало все-таки проблема именно с TABLEUPDATE, и именно после комманды SQL-UPDATE, т.к. после SQL-INSERT буфер сбрасывается без проблем view построено в Фоксовском редакторе, как и все остальные которые я использую, и с ними проблем не возникает так что проблема №10 "syntax error" остается. может как-то можно по-другому обратиться к этому полю? или что-то изменить в DBSETPROP для поля? |
Re: проблема с TableUpdate | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Триггер на модификацию у этой таблицы есть?
|
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Сложно сказать в чем дело, не видя проекта... у меня такая конструкция
UPDATE SQL TABLEUPDATE(0,.F.,'table1') с удаленным представлением работает корректно. |
Re: проблема с TableUpdate | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Владимир!
Дело не в триггере, а в поле с именем group - ради интереса отследи через CursorAdapter (с аналогичными настройками), какую SQL конструкцию строит фокс при "автообновлениях". Именно на неё и ругается он. Если поменять View вот так:
Конечно ЛУЧШЕ всё-же заменить имя этого поля - ибо возможно что в очередной версии фокса и на конструкцию типа
------------------ WBR, Igor |
Re: проблема с TableUpdate | |
---|---|
SergN Автор |
2 Igor Korolyov
ViewDesigner составляет такую строчку
а если поменять на
а как в CursorAdapter посмотреть стандартную конструкцию UPDATE? в ADVANCED он оставляет пустые поля, в которые можно писать СВОИ команды, если они отличаются от стандартных.. видимо и правда придется менять название поля обидно что Microsoft ограничивает нас в использовании имен |
Re: проблема с TableUpdate | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi SergN!
Странно, у меня он пишет полностью квалифицированное имя - т.е. "имя_БД!имя_таблицы.Имя_поля" и удаление имени БД из этой конструкции помогает... Может у тебя эта таблица не включена в БД? Посмотреть можно так: Открываем View, на базе его свойств CURSORGETPROP("SQL"), Tables, KeyFieldList, UpdatableFieldList, UpdateNameList, WhereType, SendUpdates cтроим CursorAdapter. Пишем в обработчике BeforeUpdate код типа этого:
------------------ WBR, Igor |
Re: проблема с TableUpdate | |
---|---|
SergN Автор |
2 Igor Korolyov
таблица у меня действительно не включена в БД и лежит отдельно на файл-сервере (база состоит из свободных таблиц, и не вижу пока смысла их объединять в базу) а БД состоит только из View'шек вот такую комманду отправляет CA
AERROR выдает уже ошибку №107 "Operator/operand type mismatch." я пробовал заменить UpdateCmd на
есть еще предложения что можно с этим сделать? |
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Видимо, прийдется отказаться в данном случае от обновления RV, обновлять непосредственно таблицу
с последующим requery('group_v') |
Re: проблема с TableUpdate | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Влад!
Если у него выдаёт ошибку и второй UPDATE (я не тестировал на free таблице, потому не знаю), то ничего ему не поможет - он просто не сможет написать синтаксически корректную команду. Для таблицы включенной в БД второй синтаксис у меня сработал... ------------------ WBR, Igor |
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
На таблице с последующим requery() работает, я проверял.
|
Re: проблема с TableUpdate | |
---|---|
SergN Автор |
2 Igor Korolyov
То есть вы предлагаете отказаться от использование имени поля GROUP? а через CA никак нельзя решить эту ситуацию ? хотя у меня не получилось и так.... |
Re: проблема с TableUpdate | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
А что мешает делать так, как я написал?
|
© 2000-2024 Fox Club  |