|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
Привет, у меня возникла такая проблема. В базе SQL (MS 2005) созданы представления на таблицы в другой базе на том же сервере. В фоксе создаю представления на эти представления: crea sql view имя remo conn соединение share as select * from таблица DBSETPROP(таблица,'view','SendUpdates',.T.) DBSETPROP(таблица,'view','FetchSize',-1) lPrimKey=таблица+'.PrimKey' DBSETPROP(lPrimKey,'field','DataType','i(11)') DBSetProp(lPrimKey,"Field","KeyField",.T.) В таблицах есть поле Pimkey, оно является Primary Key. После добавления записи в созданное представление (например Appen Blank) записи нормально добавляются, команда tableupdate(.f.,.t.) возвращает .t., но если попытаться удалить только что созданную запись она не удаляется, так как Pimkey отсутствует в созданной записи. Я достаю этот ключ с сервера командой SQLEXEC(cсоединение, "SELECT CAST(IDENT_CURRENT('таблица') AS FLOAT) as cident","cident") и вставляю в представление Repl Primkey with cident->cident Тогда только что добавленные записи должны удаляться. Но это работает в представлениях созданных на таблицы и не работает в представлениях созданных на представления. Возникает Update Conflict. Requery конечно помагает, но это не выход на больших объёмах информации. Подскажите что не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 16:46 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:09 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
Я знаю как прочитать значение поля со свойством IDENTITY. Вопрос в другом: почему возникает Update conflict при вставке этого самого значения в Remote View если оно создано на серверное Remote View? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:29 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
после вставки новой записи в буфер и после сохранения изменений Вы должны в Вашем курсоре изменить значение ключа (т.е. ключь должен быть значению ID записи, которое стало на сервере) если интересно, то для курсорадаптера это достижимо посредством поочередного сканирования и сохранения измененных записей в курсоре с процессом запроса значения айди записи в событии beforeUpdate либо, задействование автоматического процесса обновления записей в курсоре посредством настройки списка обновляемых полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:37 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
прошелмимопосле вставки новой записи в буфер и после сохранения изменений Вы должны в Вашем курсоре изменить значение ключа (т.е. ключь должен быть значению ID записи, которое стало на сервере) Именно это я и делаю в описанном выше примере, но после изменения ключа, на то которое стало на сервере возникает Update Conflict. Всё работает если представление создано на таблицу. Но в данном случае представление создано на представление. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:48 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:53 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
авторсоздано на представление представление обновляемое? если на сервере выполнить в кверианалайзере Код: plaintext 1. 2.
работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 18:05 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
прошелмимоавторсоздано на представление представление обновляемое? если на сервере выполнить в кверианалайзере Код: plaintext 1. 2.
работает? Да, более того например SQL Manager без проблем в нём создаёт и тут же удаляет записи. Так что проблема в фоксе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 18:14 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
авторТак что проблема в фоксе. при использовании КАД в фоксе проблем не вижу (создан механизм автообновления списка полей), либо обработка в событии Ваш выбор - ремоутвью - я Вам подсказать не смогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 18:17 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
авторДа, более того например SQL Manager без проблем в нём создаёт и тут же удаляет записи. Так что проблема в фоксе. профайлером посмотрите что происходит на сервере, какие команды генерятся, сравните ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 18:27 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
mabuseЯ знаю как прочитать значение поля со свойством IDENTITY. Вопрос в другом: почему возникает Update conflict при вставке этого самого значения в Remote View если оно создано на серверное Remote View? Вы бы все-таки прочитали что там написано. Там приведено несколько споcобов определения кода. Использование IDENT_CURRENT(), как минимум, не корректно. Ведь оно возвращает значение, присвоенное в любом сенасе работы, любым пользователем. При одновременной работе нескольких пользователей вы получите проблемы. Для Remote View нет никакой разницы, что является источником данных - собственно таблица или View на ее основе. Раз вы получили Update Conflict, то ищите ошибку у себя. FoxPro тут не при чем. Либо IDENT_CURRENT() вернуло не то, что вы ожидали, либо вы не сделали присвоение этого значения ключевому полю Remote View, либо вы указали это поле как обновляемое. Лично у меня, все прекрасно отработало по приведенной вам схеме в VFP9. Никаких Update Conflict я не получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 20:21 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
Объясните мне, тупому, - почему народ так remote view любит? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2009, 09:53 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
авторОбъясните мне, тупому, - почему народ так remote view любит? потому, что это не объект, это определенное описание св-в (хранится или в фоксовой БД или описывается программно в коде) RV - устаревший механизм, который не имеет событийности. КАД - это базовый класс, который возможно унаследовать и создать библиотеку визуальных классов. КАД имеет свойства и события. КАД удобно настраивать и удобно хранить эти настройки. При работе с КАД оч. удобно отлаживать код, понимать все процессы. Поэтому любители ООП в фокспро любят КАД и не любят RV. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2009, 11:54 |
|
Удалённое представление на представление
|
|||
---|---|---|---|
#18+
PeisovОбъясните мне, тупому, - почему народ так remote view любит? По той причине, что он наглядный . Создается и используется "при помощи мышки". Собственно кодинг (программирование) практически отсутствует. Объект CursorAdapter - это кодинг при практически полном отсутствии возможности что-то настроить мышкой. Нет наглядности. Поскольку в форум пишут одни новички, то, естественно, они используют то, что проще понять. Кроме того, в рамках стандартных курсовых все эти дополнительные "навороты" CursorAdapter, собственно, и не нужны. Не того уровня задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2009, 17:18 |
|
|
start [/forum/topic.php?fid=41&msg=36044263&tid=1586312]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 439ms |
0 / 0 |