|
|
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Есть фрейм-заготовка на котором лежит сетка и набор данных. Набор данных TUniQuery с пустым свойством SQL и, соответственно, нет persistent-полей. Есть второй фрейм, который наследуется от первого. Всё шло хорошо, пока я не заполнил у НД свойство SQL и не создал поля. При создании второго фрейма появляется ошибка: A component named qDataID already exists. qDataID - это persistent-поле. Я ведь полей в первом фрейме не создавал, поэтому дублей не должно быть. В дизайне ошибок нет, только при создании фрейма. Под фреймами я подразумеваю TUniFrame из UniGUI. ЧЯДНТ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2020, 23:32 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11, Обращаешься не в тот форум, имхо.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 00:50 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 В дизайне ошибок нет, только при создании фрейма В смысле, в рантайме? Тогда похоже, что там пытается создаться ещё один набор полей. Для начала стоит посмотреть стек вызовов в момент ошибки и проследить логику. X11 ЧЯДНТ? Про Uni не в курсе. Из общих соображений - я бы не рекомендовал пользоваться persistent полями у SQL-датасетов. Пользы минимум, а геморроя много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 00:53 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer В смысле, в рантайме? ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 00:59 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer Тогда похоже, что там пытается создаться ещё один набор полей. это я понимаю, я не понимаю, почему создается набор полей дважды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 00:59 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer Про Uni не в курсе. Из общих соображений - я бы не рекомендовал пользоваться persistent полями у SQL-датасетов. Пользы минимум, а геморроя много. а как мне в DBGrid вывести данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 01:00 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Vlad F X11, Обращаешься не в тот форум, имхо.)) я ещё не скопил нужную сумму, чтобы там задавать вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 01:03 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 а как мне в DBGrid вывести данные? Точно так же. Persistent поля для этого не нужны (ну... если версия дельфы новее, чем 1.0). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 01:12 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 это я понимаю, я не понимаю, почему создается набор полей дважды Вот это уже может быть вопрос к неизвестному мне TUniFrame. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 01:15 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer X11 а как мне в DBGrid вывести данные? Точно так же. Persistent поля для этого не нужны (ну... если версия дельфы новее, чем 1.0). Настраивать, вводить локализованные названия в DisplayCaption удобно в дизайне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 10:05 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 Настраивать, вводить локализованные названия в DisplayCaption удобно в дизайне ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 10:30 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 Настраивать, вводить локализованные названия в DisplayCaption удобно в дизайне. Спасибо, я работал с Delphi 1.0 и помню, как оно там было. Но с тех пор технология немного ушла вперёд, и начиная с 2.0 в гридах появились колонки, в которых это не менее удобно настраивается без persistent fields. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 10:36 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 Настраивать, вводить локализованные названия в DisplayCaption удобно в дизайне. По сути вопроса - смотри dfm всех фреймов и формы на которой они лежат. Скорее всего что-нибудь увидишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:38 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ А при обновлении структуры БД замучаешься искать ошибки. Поэтому лучше это делать все таки в рантайме. Вот не совсем так. Например, TpFibDataSet умеет автоматически менять параметры persistent-полей при открытии формы в дизайне. А если бы у меня было всё в pas файлах, то действительно пришлось бы всё править ручками. Ок, вот, например, UniQuery (DevArt) не умеет так делать, но всё равно - почему в редакторе кода должно быть удобнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:50 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ По сути вопроса - смотри dfm всех фреймов и формы на которой они лежат. Скорее всего что-нибудь увидишь неа, ничего нету "криминального" В первом (родительском) фрейме - только НД (снимок экрана) во втором (дочернем) уже с persistent-полями и поля в единственном экземпляре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:54 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ В нашей системе все настройки по отображению полей лежат в самой БД в описании поля. Меня всегда восхищало умение противопоставить одно плохое решение другому плохому решению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:57 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Отбой, не заметил unigui.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:57 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11, покажи такой же снимок для дочернего фрейма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:03 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 почему в редакторе кода должно быть удобнее? Код: pascal 1. 2. 3. 4. и где-то в служебных функциях Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. После этого в Description поля заносим всю нужную для отображения информациюИмя;1;16;0Здесь используется такой формат: DisplayLabel;Visible;Width;Align и при модификации поля в БД тут же изменяем его стиль отображения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:13 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer Меня всегда восхищало умение противопоставить одно плохое решение другому плохому решению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:15 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ softwarer Меня всегда восхищало умение противопоставить одно плохое решение другому плохому решению. Без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:21 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Zelius, Такого же точно снимка не будет, потому что в дочернем уже созданы поля, в один снимок всё не влезет. Запрос большой, плюс много полей, всё в один снимок не влезет, даже в два, наверное, не влезет. Я сделал так: оставил только одно поле ID и склеил снимок из двух, вырезав SQL запрос: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:24 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Здесь используется такой формат: DisplayLabel;Visible;Width;Align и при модификации поля в БД тут же изменяем его стиль отображения А если с программой работают несколько пользователей и все нужны разные настройки столбцов/сеток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:28 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 _Vasilisk_ Здесь используется такой формат: DisplayLabel;Visible;Width;Align и при модификации поля в БД тут же изменяем его стиль отображения А если с программой работают несколько пользователей и все нужны разные настройки столбцов/сеток? Логично, что в БД хранятся дефолтные, а модификации пишутся локально в реестр и при необходимости (при изменении типа поля, например) - сбрасываются. Ну я бы так сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:52 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 В первом (родительском) фрейме - только НД (снимок экрана) Так, чисто наобум - попробуй убрать этот KeyFields. Вдруг он создаёт поле под него, а потом оно конфликтует с полями из дочернего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:01 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
100%, что ничего не создаёт, это абсурдно было бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:02 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 А если с программой работают несколько пользователей и все нужны разные настройки столбцов/сеток? alekcvp Логично, что в БД хранятся дефолтные, а модификации пишутся локально в реестр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:50 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 А если с программой работают несколько пользователей и все нужны разные настройки столбцов/сеток? X11 Настраивать, вводить локализованные названия в DisplayCaption удобно в дизайне. X11 почему в редакторе кода должно быть удобнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:53 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
softwarer _Vasilisk_ пропущено... Обоснуешь? Без проблем. Тоже интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:52 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11, нет, так ничего не видно... может в запросе возвращается два поля ID из разных джойнов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:55 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Василий 2 Тоже интересно Для детального ответа надо сначала выяснить, как именно реализовано, но в целом это безвыигрышный вариант: по сути это написание "своей дельфи" в некоторой части процесса, соответственно, нужно либо потратить количество сил, сравнимое с разработкой аналогичных фич дельфы, либо результат будет заведомо хуже. Сходу я, например, уверен, что эти визуальные настройки либо вообще не ложатся в контроль версий, либо ложатся туда в невменяемом виде (например, SQL-скриптами). Как делается их хранение и редактирование... ну, по той comma-separated строчке уже видно. Как они будут сливать изменения, независимо сделанные в одной форме... и как они будут веселиться, когда возникнет необходимость одно из этих изменений задержать и не выкладывать в релиз... И это мы ещё не касаемся упомянутой коллегой необходимостью писать везде обработчик AfterOpen... а заодно не гадаем, как выглядит форма, пока этого Open не произошло (а ведь в ряде интерфейсов, например, сначала вводятся значения фильтров и только потом открывается основной запрос)... в общем, куда ни плюнь, одно сплошное веселье. И главное - только ради того, чтобы было хуже, чем в дельфе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:01 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Кстати, интересно как ты решаешь эту проблему, учитывая что у тебя персистентные поля. Учитывая что настройки постоянных полей я нигде не храню, не вижу смысла, не понимаю зачем, а настройки самих сеток - в реестре, в блобе, на выбор пользователя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 20:54 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Т.е. у тебя проблема многопользовательского интерфейса даже не поднимается именно многопользовательский интерфейс: для каждого пользователя хранятся данные в базе отдельно, либо в реестре на одно рабочее место - кто как захочет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 20:55 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Zelius X11, нет, так ничего не видно... может в запросе возвращается два поля ID из разных джойнов? Почему тогда они не создаются в редакторе постоянных полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 20:56 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Zelius нет, так ничего не видно... а там ничего и нет, не на что смотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 20:57 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Я провел такой эксперимент. Скопировал НД, ну т.е. создал такой е, только с другим именем и сетку с DataSource подключил к новому. Запустил - проблем нет. Форма, вернее фрейм создался, НД открылся, в сетке вижу данные. Ошибок нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 21:02 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Короче, я удалил НД на родительском фрейме и создает его на дочернем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 21:13 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
плавно приходим к нужным решениям :) есть еще вариант - наборы на формы и фреймы вообще не класть, а создавать в рантайме. Если в помощь привлечь GExpert, то это делается несколькими нажатиями кнопок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 21:30 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
Возможно, я понял причину после удаления НД из родительского фрейма, но экспериментировать больше нет желания сейчас. В родительском фрейме затерялся код открытия НД при показе фрейма не знаю, зачем я это сделал. Т.е. я открывал НД и в родительском фрейме, и в дочернем. Прикол в том, что в родительском фрейме был пустой НД, полностью пустой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 22:08 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
аааааа где здесь посыпают голову пеплом? у меня есть ещё одна дочерняя форма, которая наследуется от первой дочерней прошу извинить за отнятое время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 22:39 |
|
||
|
Наследование фрейма с TDataSet
|
|||
|---|---|---|---|
|
#18+
X11 где здесь посыпают голову пеплом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2020, 15:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038612]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
8ms |
get forum data: |
10ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 453ms |

| 0 / 0 |
