|
|
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Великий ALL. ЕСть вопрос. PB9.0, W2003, работаю в ПФС. Есть простая таблица-хочу ее видеть на одной закладке в GRID для скорости навигации и простого редактирования, на другой в FORM для редактирования(полей много). Закладки u_tabpg. Все of_updateable. 1-вариант-shareData этих DW. В результате pfc_save пишет -your DW doesn't have UPDATE capability? Error 3-...between retrieve and update-то есть ничего не получается. 2-вариант-воспользовался Linkage. Дает ошибку в синтаксисе оператора UPDATE-хотя с виду Update совершенно правильный. Кто знает как сделать такую вещь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:35 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Знаем. Нужно прекратить халтурить и написать изменения БД руками. Тогда всё получится. ____________________________________ - Гарфилд, мышь! - Спасибо, я сыт! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:40 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ-только что значит "писать изменения руками"? у каждого руки разные! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 11:58 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Формировать INSERT/UPDATE/DELETE в БД вручную, а не встроенными средствами. Немного муторно, но избавляет от загадочных глюков. Кроме того, проще делать валидацию вводимых данных. ____________________________________ - Гарфилд, мышь! - Спасибо, я сыт! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 12:49 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Dim2000Формировать INSERT/UPDATE/DELETE в БД вручную, а не встроенными средствами. Немного муторно, но избавляет от загадочных глюков. Кроме того, проще делать валидацию вводимых данных. ____________________________________ Очень не хочется пользоваться нештатными(скажем нетипичными) средствами ПБ-там где можно штатными. Это мой принцип. Хотелось бы совета, как управляя Properties /events избежать этой маленькой хитрости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 12:55 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
sboykoОчень не хочется пользоваться нештатными(скажем нетипичными) средствами ПБ-там где можно штатными. С каких пор ESQL стал нештатным средством? Это мой принцип. У меня другой принцип - делать так, как работает . Хотелось бы совета, как управляя Properties /events избежать этой маленькой хитрости. Не ко мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 13:05 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
sboyko1-вариант-shareData этих DW. В результате pfc_save пишет -your DW doesn't have UPDATE capability? Error 3-...between retrieve and update-то есть ничего не получается. проверь Update Properties твоих DWobject'ов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 13:31 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
sboyko Dim2000Формировать INSERT/UPDATE/DELETE в БД вручную, а не встроенными средствами. Немного муторно, но избавляет от загадочных глюков. Кроме того, проще делать валидацию вводимых данных. ____________________________________ Очень не хочется пользоваться нештатными(скажем нетипичными) средствами ПБ-там где можно штатными. Это мой принцип. Хотелось бы совета, как управляя Properties /events избежать этой маленькой хитрости.Насколько я понимаю, вам нужно формировать update только для одного DW - второе получает разделяемые данные. Вообще, рекомендую посмотреть исходный код объектов в pfc-библиотеках, начиная с события pfc_save в pfc_w_master. Там все довольно прозрачно. Dim2000... Это мой принцип. У меня другой принцип - делать так, как работает . ...Хм... Не от таких ли принципов возникает код, принципиально требующий присутствия автора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 15:31 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
У меня одновременно используеться и ShareData и LinckAge ! Все очень просто - как сказали выше, из всех Шареных DW надо оставить одно со свойством is_updateble , первое! Отсальные - убрать. Тогда pfc_save() - будет работать нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 15:55 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
sboykoВеликий ALL. ЕСть вопрос. PB9.0, W2003, работаю в ПФС. Есть простая таблица-хочу ее видеть на одной закладке в GRID для скорости навигации и простого редактирования, на другой в FORM для редактирования(полей много). Закладки u_tabpg. Все of_updateable. 1-вариант-shareData этих DW. В результате pfc_save пишет -your DW doesn't have UPDATE capability? Error 3-...between retrieve and update-то есть ничего не получается. Попробуй сделать ShareDataOff перед сохранением и ShareData после сохранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:00 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
PL99 Dim2000...У меня другой принцип - делать так, как работает .Хм... Не от таких ли принципов возникает код, принципиально требующий присутствия автора? Честно говоря, мне абсолютно всё равно, что будет с моим кодом после моей смерти ;). Но, по отзывам других людей, написанное мной требует минимального внимания и легко понятно даже начинающим. Не так уж и плохо. Что же касается внесения изменений в БД только "руками" - это моё убеждение, выстраданное переделкой разного рода глюкал, оставшихся мне в наследство от других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:12 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Из соседнего топика цитата: ФилиппНи строчки embedded SQL!!! :-)Обеими руками - за. Любителей ESQL - давить! Загадочность глюков как правило проистекает из недостаточно четкого понимания как работает datawindow (ну или PFC). Делать какие-либо действия с БД в обход стандартных возможностей DW - неправильно. При таком подходе - данные из DW сохраняются вручную с помощью ESQL - кода больше - соответственно производительность падает - возрастает вероятность ошибки. И поддерживать сложнее, что бы Вы там ни говорили. По поводу вопроса - правильно использовать Linkage и ShareData одновременно. Linkage переключить в режим Scroll. Linkage обеспечивает скроллинг, ShareData - синхронность данных. updateable у FORM надо отключить ( of_SetUpdateable(False) ? ) поскольку достаточно того, что изменения сохранит GRID. Выключать ShareData перед сохранением - бред! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:10 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Dim2000Знаем. Нужно прекратить халтурить и написать изменения БД руками. Тогда всё получится. Более безобразного совета на этом форуме я ещё не слышал. Ни в коем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 18:56 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Филипп Dim2000Знаем. Нужно прекратить халтурить и написать изменения БД руками. Тогда всё получится. Более безобразного совета на этом форуме я ещё не слышал. Ни в коем случае. Можно обосновать? Я свою точку зрения вообще-то обосновал - на разного рода трудновоспроизводимые глюки от использования DW для модификации данных я насмотрелся предостаточно для того, чтобы понять, что это делать не нужно. Оригинальным автором поделий был не я - я их доводил до ума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 19:09 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Г-н sboyko, сделать нужно следующим образом: 1) n_dsa descendant instance variable (назовём для наглядности ids_defaults) на твоём таб контроле, который и будет шариться с DWми на закладках. 2) В Constructorе таб контрола пишешь типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 3) На datawindows, сидящих на закладках, скриптаешь всё как полагается, pfc_Validation и т.п., НО override pfc_Update и в нём просто пишешь RETURN SUCCESS , поскольку эти datawindows - display only. По сути дела - всё, остальное - косметика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 19:12 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Dim2000на разного рода трудновоспроизводимые глюки от использования DW для модификации данных я насмотрелся предостаточно для того, чтобы понять, что это делать не нужно. 1) разного рода трудновоспроизводимые глюки от использования DW для модификации данных возникают от кривых рук программистов. 2) НЕ использовать DW для модификации данных - оксюморон, это всё равно что сказать - мы используем Powerbuilder, но при этом НЕ используем Powerbuilder . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 19:15 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Филипп2) НЕ использовать DW для модификации данных - оксюморон, это всё равно что сказать - мы используем Powerbuilder, но при этом НЕ используем Powerbuilder . Нее - круче сказать - "Мы используем PB, но не пользуемся DW" :) Dim2000 Глюки конечно есть, но при достаточно граммотно подходе они все обходятся. Делитесь глюками, глядишь найдуться люди, которые их давно обошли. Не использовать же DW для сохранения данных что через Update table, что через Update Procedure - для меня по меньшей мере странно звучит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 23:17 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
ASCRUSНее - круче сказать - "Мы используем PB, но не пользуемся DW" :) Не-а, мы пользуемся DW для доставания и показывания данных. Это у него получается просто замечательно . Глюки конечно есть, но при достаточно граммотно подходе они все обходятся. Делитесь глюками, глядишь найдуться люди, которые их давно обошли. Тынц Проблема не у меня (у меня их нет), но с удовольствием прочитаю о способах её решения ;). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 16:45 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Ну так это проблема ADO.Net провайдера, а не datawindow, не надо нам тут передёргивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 17:44 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
ФилиппНу так это проблема ADO.Net провайдера, а не datawindow Я считаю это проблемами DW. Ибо select @@identity должно нормально работать на любом хотя бы условно пригодном к использованию провайдере. не надо нам тут передёргивать... Это и всё, что Вы можете сказать по существу проблемы ;)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 18:01 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Проблема не у меня (у меня их нет),У стоматолога который считает что зубы не надо лечить, а надо сразу вырывать нафик - тоже проблем нет. Проблемы потом у пациентов но с удовольствием прочитаю о способах её решения ;).Так там уже есть как минимум два решения - пользоваться OLEDB вместо ADO.NET ( в семерке когда только появился OLEDB он тоже глючил, потом стало гораздо лучше) - делать select scope_identity() после UPDATE. ( именно так и приходилось делать при использовании OLEDB под 7ой или 8ой - не помню уже.) Слегка подправить поведение DW и полностью ампутировать INSERT/UPDATE/DELETE это знаете ли разные вещи. Я тоже считаю что "трудновоспроизводимые глюки" это либо неумение, либо нежелание разобраться. Я не сталкивался за последние 10 лет с глюками при сохранении DW которые нельзя было бы обойти, в худшем случае - с помощью пары тройки десятков строк кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 18:44 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Считать вы можете всё, что угодно, но если воспользоваться вашим блестящим советом и "написать изменения БД руками", то бишь взять и написать embedded SQL, который к примеру пойдёт через тот же "любой хотя бы условно пригодный к использованию провайдер", то у вас каким то чудом произойдёт fetch identity прямо внутри UPDATE statementа, и опять же каким то чудом значение identity будет засунуто в какую то локальную переменную? Если "любой хотя бы условно пригодный к использованию провайдер" поддерживает такую операцию, тогда значение identity появится и в соответствующем datawindow, если нет, то нет, причём здесь datawindow? Так что не надо нам тут НЕ по существу проблемы передёргивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 18:51 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Dim2000 Тынц Проблема не у меня (у меня их нет), но с удовольствием прочитаю о способах её решения ;).Пожалуйста! Если проблема возникает при миграции на очередную версию среды разработки, то, прежде всего, стоит задаться вопросом - надо ли переходить? Посчитать все плюсы и минусы, к которым такой переход приведет. В приведенном вами случае минусы перевешивают все имеющиеся плюсы. Думаю, что через год-полтора проблема будет решена, тогда и можно будет задуматься о переходе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 19:21 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
ФилиппСчитать вы можете всё, что угодно, но если воспользоваться вашим блестящим советом и "написать изменения БД руками", то бишь взять и написать embedded SQL, который к примеру пойдёт через тот же "любой хотя бы условно пригодный к использованию провайдер", то у вас каким то чудом произойдёт fetch identity прямо внутри UPDATE statementа, и опять же каким то чудом значение identity будет засунуто в какую то локальную переменную? Внутри - не пойдёт. А вот select @@identity into :new_id from dummy (или как там правильно для MSSQL - я сижу на ASA) пока что не подводило. Так что не надо нам тут НЕ по существу проблемы передёргивать... Не говорите, что мне нужно делать... продолжение знаете ? Так вот, если по существу вопроса - откуда такая уверенность, что дело не в том, что DW "забывает" послать этот самый select @@identity (или что там нужно посылать) на сервер? Если бы Вы сказали, что select @@identity, посланный с помощью ESQL через ADO.NET на MSSQL, возвращает какую-то чушь - это бы меня убедило (даже поверю на слово - "десятки" под рукой нет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 20:10 |
|
||
|
sharedata()
|
|||
|---|---|---|---|
|
#18+
Ещё по существу проблемы (не в этом топике): 1) OLEDB и ADO.NET are equivalent at this point as the current ADO.NET support in PB is limited to the Data Provider for OLEDB (as the ADO.NET support is limited to the .NET Data Provider for OLEDB which is in the System.Data.OleDb namespace) 2) From Sybase's employee - ADO.NET in PB 10 is a layer above PB10. I don't see a compelling use of the ADO.NET driver in PB10. It will be key in PB11 when we can create .NET assemblies, and it's key now in DataWindow .NET 1.0/1.5. Отсюда вывод - даже в РВ10 НЕ надо использовать ADO.NET (он там ТОЛЬКО для DataWindow.NET) , а надо OLEDB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 20:51 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32918414&tid=1338524]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 417ms |

| 0 / 0 |
