Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

cxGrid6 - Access Violation [D7, IB6.x]


Страницы:   1 2 3

GRAND ©   (2008-11-11 12:20:00) 

Попытаюсь описать проблему как можно подробнее, ежели чего упущу, то доскажу потом.

Вобщем, где-то пару лет как я с переменным успехом пытаюсь писать клиентские приложения с использованием визуальных компонентов исключительно от DevExpress. Иногда дело идет, как по маслу, а иногда (как сейчас, например) - не очень. Время от времени я сталкивался с этой проблемой, иногда удавалось бороть ее компромиссами в пользу других компонентов, но до глубинной сути возникающего непотребства докопаться мне так и не удалось. Суть проблемы в том, что, как мною замечено, компонент cxGrid очень не любит, когда какие-то изменения в датасете, им отображаемом, производятся помимо него. То есть, я имею в виду ситуацию, когда в OptionsData все операции (Insert, Delete etc.) зафолсены, а для вставки/редактирования записей используется отдельное диалоговое окно. Заметил также, что проблема проявляется, если в гриде заданы несколько вьюх, связанных между собой мастер-детальным отношением. При одной вьюхе с одним датасетом никаких AV почему-то не возникает. И самое интересное: после вставки новой записи AV возникает не всегда! От чего это зависит - тайна большая есть. Запись, кстати, при этом благополучно вставляется, но AV этот уже достал конкретно. Иногда бывает еще и так, что работаешь с формой спокойно, вставляешь-редактируешь, сколько хочешь, а потом только, когда форму закрываешь, вылетает AV.

Кто подскажет, может быть, я чего-то не учел? Кривой ли вообще, по вашему мнению, cxGrid?

Заранее спасибо!


Игорь Шевченко   (2008-11-13 11:34:00) [21]

У меня вопрос к итальянскому коллеге - а что, для DataSet-а существенна разница, через какой DataLink к нему поступают данные, в смысле через GridDataLink или через FieldDataLink ?

Не совсем понятно, чем механизм редактирования в гриде отличается от механизма редактирования через набор полей с точки зрения DataSet-а.


MsGuns   (2008-11-13 11:21:00) [22]

Пардон, не оракл, конечно, а ИБ и ФБПлас :)


MsGuns   (2008-11-13 11:19:00) [23]

>GRAND ©   (13.11.08 09:12) [25]

Тебе указали на места, где надо искать ошибки,- это не по сути ?
Или ты думаешь, что здесь кто-то будет усердно исследовать твои халявные гриды и телепатировать каким образом ты пишешь в датсет (не в таблицы БД, а именно в датасет) и при этом обновляешь деталы (или наоборот, модифицитруешь деталы и при этом что происходит с полями-связками) ?

Одно могу сказать почти со 100% гарантией - оракл тут ни при чем


GRAND   (2008-11-13 09:12:00) [24]

Ну вот. Значит, по сути вопроса сказать таки нечего. А то "Окстись! Опомнись! Покайся!"...


Sergey13   (2008-11-12 08:46:00) [25]

> [21] MsGuns ©   (11.11.08 22:29)
> я сразу начал писать ПРАВИЛЬНО

Свои тараканы всегда самые тараканистые тараканы в мире. 8-)


MsGuns   (2008-11-12 00:15:00) [26]

>без нравоучительно-менторских лекций о файл-серверах

Как скажешь..
На сем с наилучшими


GRAND   (2008-11-12 00:04:00) [27]


> Вова, ты не обижайся, но у тебя, ИМХО, типичный ламерский
> подход: ты хваьаешься за компоненты, пыжишься с их помощью
> решить задачу и, если не получается, начинаешь на них катить
> бочку.


Ганзыч, давай так: когда выяснится, что глюки происходят из-за того, что это я где-то накосячил, тогда и назовем мой подход ламерским, хорошо? Позор на седые пятки, обрывание волос, съедание котелка - все удовольствия, какие захочешь. А пока... Тебе не приходило в голову, что если я задаю вопрос на форуме, то это значит, что у меня есть проблема, а что именно я неправильно сделал, неизвестно? Причем, пока что, судя по развитию ветки, неизвестно это не только мне. А тебе уже все понятно! Гранд - ламер! ЛОЛ! :)


> Что касается "файл-сервера". Очевидно, что ты не понял.
> Объяснить тебе в одном-двух постах нереально.


Ну где ж мне, грешному...


> Советую поискать статью, озаглавленную вроде так: "Блеск
> и нищета клиент-серверных технологий".


Будет время - поищу.


> Программирование клиент-сервера не стало проще за последние
> 10 лет, просто оно замаскировалось множеством оболочек,
> библиотек и компонентов, скрывающими от проектировщика тонкости
> клиент-сервера. И в большинстве случаев это работает. Но
> если возникает нештатная ситуация, не предусмотренная резработчиками
> "прослоек" (оно и понятно - невозможно предусмотреть все
> ситуации, которые могут возникнуть), то тогда вылазят ошибки,
>  которые неопытный в КС программист спешит провозгласить
> глюками, да еще проорать на весь мир "Караул ! Не пользуйте
> ADO - там сплошой глюкодром !"


Дело вкуса. Я лично, когда занимаюсь поставленной передо мной задачей, предпочитаю заниматься задачей и очень не люблю, когда под ногами путаются проблемы, с ней напрямую не связанные. Тонкости реализации фибов, файрберда и иже с ними лучше оставить тем, кто этими разработками занимается. У них - свои задачи.


> А дело в том, что благодаря Вострикову и Ковязину ("Мир
> интербэйз") я сразу начал писать ПРАВИЛЬНО. Четко разделяя
> длинные читающие и короткие пишущие транзакции, избегая
> "гридного" (сиречь датасетного)редактирования


На всяк случай уточню: что ты понимаешь под гридным (датасетным) редактированием? Редактирование в DB-привязанных компонентах с использованием UpdateSQL? Да, можно, конечно, зашарабанить и простые Edit'ы (не DB), после чего содержимое этих Edit'ов валидируется и в случае успеха валидейшена вываливается в датасет, но смысл? Это, извините меня, как сношаться в гамаке...

Но не будем уходить в сторону, куда ты меня увел. Еще раз повторю: проблема не в датасетах, проблема не в фибах и не в транзакциях. Поэтому давай, Ганз, как-то больше по сути и без нравоучительно-менторских лекций о файл-серверах и великих и ужасных писателях по Вострикову. Да еще и с Ковязиным - надо ж было такое на ночь...!


MsGuns   (2008-11-11 22:29:00) [28]

Вот ты ратуешь за FIBPlus. Я, когда работал с ИБ, вполне обходился IBX и когда поставил себе плас, долго не мог понять отчего я не вижу разницы ! А дело в том, что благодаря Вострикову и Ковязину ("Мир интербэйз") я сразу начал писать ПРАВИЛЬНО. Четко разделяя длинные читающие и короткие пишущие транзакции, избегая "гридного" (сиречь датасетного)редактирования, не ленясь "ручками" разруливать транзакции и переоткрывать датасеты после внесения изменений в таблицы. Короче, работать так, как пишут "великие и ужасные" ;)

Чего и тебе советую.


MsGuns   (2008-11-11 22:23:00) [29]

Вова, ты не обижайся, но у тебя, ИМХО, типичный ламерский подход: ты хваьаешься за компоненты, пыжишься с их помощью решить задачу и, если не получается, начинаешь на них катить бочку.

Что касается "файл-сервера". Очевидно, что ты не понял. Объяснить тебе в одном-двух постах нереально. Советую поискать статью, озаглавленную вроде так: "Блеск и нищета клиент-серверных технологий". Там очень здорово написано про главное
Программирование клиент-сервера не стало проще за последние 10 лет, просто оно замаскировалось множеством оболочек, библиотек и компонентов, скрывающими от проектировщика тонкости клиент-сервера. И в большинстве случаев это работает. Но если возникает нештатная ситуация, не предусмотренная резработчиками "прослоек" (оно и понятно - невозможно предусмотреть все ситуации, которые могут возникнуть), то тогда вылазят ошибки, которые неопытный в КС программист спешит провозгласить глюками, да еще проорать на весь мир "Караул ! Не пользуйте ADO - там сплошой глюкодром !"


GRAND   (2008-11-11 21:51:00) [30]

Ждал, кто же будет первым с предложением ЭхЛиба! :)))
ANB, у меня на той форме вверху два грида, в одном из которых две вьюхи замастердеталенные и внизу один тоже с двумя вьюхами замастердеталенными. Какой тут ЭхЛиб?

Эххх... :(


ANB   (2008-11-11 19:43:00) [31]


> GRAND ©   (11.11.08 17:02) [17]

Ставим халявый ЭхЛиб и наслаждаемся жизнью.
:)


GRAND   (2008-11-11 17:02:00) [32]

Собственно говоря, я толком и не понял, Ганз, что ты в [2] нагородил-то вообще и чего всем этим хотел сказать. Мастер-детал фтопку? Гридное редактирование суксь? А причем здесь файл-сервер (мы вроде о СУБД архитектуры КС говорим), какой образ мышления этот файл-сервер формирует и какие траблы рано или поздно привозит? Объяснись плиз!


GRAND   (2008-11-11 16:56:00) [33]


> Мастер-делал, "гридное" редактирование и т.п. - методы файл-
> серверного "мышления", рано или поздно привозящие траблы.
>


Что можешь предложить взамен?


MsGuns   (2008-11-11 16:49:00) [34]

Ты все-таки [2] внимательно почитай и подумай


Sergey13   (2008-11-11 16:24:00) [35]

> [12] GRAND ©   (11.11.08 16:04)

Так может на рынке что попутали? Я конечно с ними мало работал, но с правильными и не помню подобной байды, хотя вся работа практически строилась по твоему сценарию.


GRAND   (2008-11-11 16:04:00) [36]

Но с исходниками!


GRAND   (2008-11-11 16:04:00) [37]

Рыночные... :)


Sergey13   (2008-11-11 15:59:00) [38]

> [10] GRAND ©   (11.11.08 15:45)
А компоненты, стесняюсь спросить, правильные или с китайского рынка?


GRAND   (2008-11-11 15:45:00) [39]


> Объясни разницу с т.зр. реализации компонент (если она не
> глючная, конечно) между редактированием в сетке и редактированием
> связанного с нею датасета.


В сетке не все поля визибле, а в диалоговом окне они отображаются и вводятся. Кроме того, есть поля, значения которых по умолчанию выставляются в зависимости от выбора юзером записи в некоем лукап-комбобох и значения соответствующего поля в другом датасете. При этом тупой лукап по иду не нужен, а нужно копирование значения с возможностью его последующего изменения.


> Датасету ведь глубоко фиолетово КТО изменил запись (поле):
>  юзер кнопками или приложение кодом


Датасету - да. Но я и не на датасет вовсе грешу.


MsGuns   (2008-11-11 15:28:00) [40]

Объясни разницу с т.зр. реализации компонент (если она не глючная, конечно) между редактированием в сетке и редактированием связанного с нею датасета.

Датасету ведь глубоко фиолетово КТО изменил запись (поле): юзер кнопками или приложение кодом


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо