|
|
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
задача : надо изменить данные удалённой таблицы в соответствии с локальной таблицей в локальном представлении использую удалённое представление делаю replace текущей записи, на экране вижу, что в удалённом представлении запись изменилась, закрываю представление, ... в базе никакого изменения не произошло. поле, которое изменяю, неключевое и ни с какими другими полями не связано. в update ctiteria все необходимые "галки" для update стоят что делаю не так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 11:24 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
а таблеапдате удаленному представлению делали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 11:32 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
а как его делать ? подскажите, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 11:36 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
ведь в самом представлении ставлю галку на Send SQL update и в Updqte using и на поле которое изменяю ставлю галку "редактируемое" разве этого не достаточно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 11:39 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
как делать так и делать select удаленное представление Tableupdate оно же у вас буферизированое - поэтому нужно буфера сбросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 11:46 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
= TABLEUPDATE(.T.) после replace не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 13:02 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
>= TABLEUPDATE(.T.) после replace не помогло Ну так смотрите что вам вернула TABLEUPDATE, если .F. то получите по AERROR() код и причину ошибки и анализируйте информацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 13:28 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
вот выдала AERROR 1526 Connectivity error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'dbo' to a column of data type int. 22005 245 1 .NULL. прошу помочь разобраться ... - если бы неправильно был указан тип изменяемого поля, он бы не изменился на экране почему тогда пишет "error converting the nvarchar value 'dbo' to a column of data type int" ? - если это ошибка триггера добавления, какие должны быть мои действия по исправлению ? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 14:50 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
Guest1- если бы неправильно был указан тип изменяемого поля, он бы не изменился на экране Не обязательно - то что на экране - это отображение на клиенте того что фокс получил от сервера и как-то преобразовал к своему типу курсора. А когда вы пытаетесь обновить даннные на сервере, происходит обратный конвертаж, вот при нем-то и происходит "затык". Посмотрите профайлером , что именно происходит в момент обновления , какая команда. Guest1- если это ошибка триггера добавления, какие должны быть мои действия по исправлению ? ну это вам виднее , что там в триггере твориться. Попробуйте выполнить апдейт из QA - что получиться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 15:46 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
всё разобралась, получилось спасибо всем, не бросившим меня в трудную минуту :) дело было в триггере отключила его через VFP remote view внесла изменение в таблицу включила триггер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 13:05 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
а какую бы вот здесь хитрость применить ? при созданном удалённом представлении и replace varchar(200),NULL поля таблицы SQL полем с(200) VFP текст переносится в SQL c хвостовыми пробелами, несмотря на то, что в команде указано alltrim replace полеSQL with allt(полеVFP) спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 13:53 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
С каких это пор в SQL сервере замена значения в поле стала производится через Replace? Вы ничего не перепутали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:18 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
не перепутала ... при использовании удалённого представления-меняет только вот не хочет отсекать хвостовые пробелы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:23 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
И все-таки перепутала. Замена в удаленном представлении - это замена в курсоре, полученном в результате запроса к серверу. Собственно обновление на сервере происходит по TableUpdate() или прямым запросом через SQLEXEC(). Так что ALltrim() в приведенном примере - мертвому припарки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:37 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
1. для чего тогда опция update criteria в remote view ? 2. реально вижу что данные изменились ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:56 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
Вы видите то, что и должно быть видно, но не правильно представляете механизм работы. Еще раз повторяю, что изменения вы вносите в курсор и только потом механизм удаленного представления переносит эти изменения на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 15:04 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
Собственно обновление на сервере происходит по TableUpdate() или прямым запросом через SQLEXEC(). Ну еще есть неявный TableUpdate, происходящий при 3-й буферизации при сходе со строки, которая и стоит по умолчанию у вьюхи. Вот человек и подумал что оно само обновляется :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 15:26 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
Если версия FoxPro младше 9, то через View эта проблема не решается. Отсечь концевые пробелы можно будет либо через триггер на самом сервере, либо отказом от обновления через Remote View и переходом на прямые запросы по SQLExec() Правда, есть еще вариант в самом Remote View заменить тип данных Cahracter на Memo (кнопка Properties на первой закладке дизайнера View). Сам не пробовал, не знаю что получится. Если версия VFP9, то проблема решается через поля типа VarChar, которые как раз и были введены в VFP9. Однако во многих случаях можно не морочить себе голову. 255 пробелов - не такой уж большой объем, чтобы из-за него что-то там мудрить и отсекать. Хотя, конечно, хависит от задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 17:16 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
установила 9.0 попробовала с полем varchar через remote view всё получилось, и концевые пробелы отсеклись а чем отсекала - не скажу, потому что человек с ником "проходящий" не поверит и опять скажет что я перепутала :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 15:57 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
Ну да,я просто Фома неверующий! :) Но если расскажете, то я, возможно, объясню как это произошло. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 16:02 |
|
||
|
удалённое представление
|
|||
|---|---|---|---|
|
#18+
проходящийНу да,я просто Фома неверующий! :) Но если расскажете, то я, возможно, объясню как это произошло. :) icq 329931650 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 16:19 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34040995&tid=1590585]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 326ms |

| 0 / 0 |
