|
|
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Добрый день! В VFP мало что заню, но очень необходимо написать prd, которая устанавливает ODBC connection (например, с Oracle) и позволяет работать (select/update/delete/insert) с удалённой таблицей. На просмотр получилось сделать, а на редактирование нет. Написал следующее CREATE DATABASE C:\ora_conn OPEN DATABASE ('C:\ora_conn') CREATE CONNECTION ora_conn_test CONNSTRING 'DSN=orabase;UID=user;PWD=123;' DATABASE 'DBTEST' CREATE SQL VIEW ora_view CONNECTION ora_conn_test as select * from dbtest.testodbc USE ora_view CURSORSETPROP("SendUpdates", .T.) SELECT * from ora_view Прошу помочь с написание кода. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 15:55 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Лучше всего сначала нарисовать это используя соответствующий билдер в самом фоксе и посмотреть что он там нагенерит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 15:58 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Ну вот он мне примерно такое и нагенерил, но редактировать я это не могу... А что сделать, чтобы смог не пойму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:01 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
siriusPНу вот он мне примерно такое и нагенерил, но редактировать я это не могу... А что сделать, чтобы смог не пойму Открыть RemoteView в визарде, прставить галки у ключевого поля + поля для изменения, затем поставить галку SendUpdate, сохранить View ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:06 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Спасибо, действительно после этого можно делать insert/update/delete, но 1. можно делать из командного окна, а из браузера - нет 2. данные не отразились на remote базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:15 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
1. Сделать prg такого вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 2. Результат запости сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:26 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Результат OK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:33 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
siriusPРезультат OK И чЁ, данные на сервер-то прилипли или как? Тогда, Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:54 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
не прилипли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:54 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Тогда, выполни код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 16:56 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Выполнил, полял, что надо добавить cursorsetprop('SendUpdates', .T.) После это insert into ora_view (id_, name_) values(5, 'test 5') выдал ошибку ...значение для столбца name_ слишком велико (фактическое 200, максимальное 50) у меня name_ - varchar(50) а добавляю намнго меньше, что за хрень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 17:00 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
1. Для Оракла лучше использовать родной дрйвер ODBC 2. Ошибку приведи как она есть, в оригинале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 17:03 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
сделал через родной драйвер - прошло без ошибки. Спасибо. Есть ещё вопросики: 1. как сделать, чтобы после отработки этого prg пользователю выдавался обычный грид с выборкой из remote таблиц, в котором они могли бы работать? 2. как сделать, чтобы появилось command window? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 17:29 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
и ещё вопрос: можно ли сделать Remote view без создания Database на диске? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 17:45 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Если у тебя VFP 8 или 9 почитай про cursoradapter IMHO помощнейй и получше будет подробности поищи здесь или на фоксклубе по cursoradapter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 19:07 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
а через Wizard возможно открытие Remote View чтобы можно было делать insert/update/delete? не получается, а очень надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2008, 19:42 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Выручайте!!! после того как поставил галочку Send Sql update изменения стали отражаться в oracle, но только если после изменения каждой записи выполнить tableupdate(.t.,.t.,'ora_view'). Можно ли как-то ещё сделать достичь тоёже цели???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 10:28 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Вы наконец-то откроете нам полное определение Вашего View или таки мы должны сами догадываться о значениях все влияющих на его поведение свойств? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 10:32 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
siriusPВыручайте!!! после того как поставил галочку Send Sql update изменения стали отражаться в oracle, но только если после изменения каждой записи выполнить tableupdate(.t.,.t.,'ora_view'). Можно ли как-то ещё сделать достичь тоёже цели???? Код: plaintext В этом случае будет происходить косвенный tableupdate(), правда в этом случае все возмоные грабли будут на твоей совести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 10:35 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Хорошо, попробую с начала. Необходимо из внешней программы (на Delphi, Java - не суть) запустить пользователю FoxPro c настроенным ODBC коннекшеном на oracle, чтобы он мог работать с таблицей как с локальной. Поскольку foxpro я вижу первый раз, то всё очень туманно. Написал следующее: SET SAFETY OFF close table all CREATE DATABASE C:\ora_conn OPEN DATABASE ('C:\ora_conn') CREATE CONNECTION ora_conn_test CONNSTRING 'DSN=oracle;UID=test;PWD=123;' DATABASE 'TEST' CREATE SQL VIEW ora_view CONNECTION ora_conn_test as select * from TEST.table1 use ora_view in 0 cursorsetprop('buffering',5, 'ora_view') cursorsetprop('SendUpdates', .T.) BROWSE при этом: изменения не отражаются в oracle!!! необходимо каждый раз создавать file с database После этого попробовал достичь результата через конструктор: * создаю новую Database, создаю новый Connection c oracle * создаю новый remote view: в критериях update ставлю галочку Send Sql updates, Key and updatable fields * открываю созданную view, пробую редактировать запись - после изменения записи и при переходе на след. запись foxpro выдаёт сообщение * "update conflict", а если после изменения выполнить tableupdate(.t.,.t.,'ora_view'), то изменения происходят и на oracle. * соответственно групповые операции происходят тоже с "update conflict", как от этого избавиться непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 11:06 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
siriusPSET SAFETY OFF close table all CREATE DATABASE C:\ora_conn OPEN DATABASE ('C:\ora_conn') CREATE CONNECTION ora_conn_test CONNSTRING 'DSN=oracle;UID=test;PWD=123;' DATABASE 'TEST' CREATE SQL VIEW ora_view CONNECTION ora_conn_test as select * from TEST.table1 use ora_view in 0 cursorsetprop('buffering',5, 'ora_view') cursorsetprop('SendUpdates', .T.) BROWSE ..... Можно и нужно создать БД и соединение один раз, те не обязательно пересоздавать сам контейнер с определениями. Поэтому в коде будет достаточно: siriusPSET SAFETY OFF close table all use ora_view in 0 cursorsetprop('buffering',5, 'ora_view') cursorsetprop('SendUpdates', .T.) BROWSE siriusP при этом: изменения не отражаются в oracle!!! необходимо каждый раз создавать file с database ... НЕТ, вывод не правильный. siriusP После этого попробовал достичь результата через конструктор: * создаю новую Database, создаю новый Connection c oracle * создаю новый remote view: в критериях update ставлю галочку Send Sql updates, Key and updatable fields * открываю созданную view, пробую редактировать запись - после изменения записи и при переходе на след. запись foxpro выдаёт сообщение * "update conflict", а если после изменения выполнить tableupdate(.t.,.t.,'ora_view'), то изменения происходят и на oracle. * соответственно групповые операции происходят тоже с "update conflict", как от этого избавиться непонятно. Ну вот первые грабли были "огребены" 1. Создаешь в конструкторе БД 2. Создаешь в конструкторе соединение 3. Создаешь в конструкторе RV 4. Настраиваешь в конструкторе RV ВСЁ, дальше к БД не притрагиваешься. Теперь создаешь prg Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Вот это prg должна уже работать (не надо заново создавать БД, RV итд) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 11:20 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
ок. Сделал всё как ты сказал, но как пользователь будет работать с вьюхой непонятно - browser не даёт изменить записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 11:38 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
siriusPок. Сделал всё как ты сказал, но как пользователь будет работать с вьюхой непонятно - browser не даёт изменить записи Что значит не дает изменить? а) Ячейки не редактируются? б) Данные не плилипаю в БД Оракл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 11:44 |
|
||
|
редактирование Remote view
|
|||
|---|---|---|---|
|
#18+
Ячейки не редактируются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 11:45 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35072183&tid=1588265]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 400ms |

| 0 / 0 |
