|
|
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
Добрый день! Не могу победить пару моментов при работе с cxGrid. Подскажите кто в курсе: 1. Имеются 2 мастер-детайл таблицы Изделие и детали для его ремонта. Связь по ключу. Создал две View. Во второй подчинённой прописал ключи мастера и детайла. Всё работало, но тут обнаружил, что если хочу в старую запись добавить еще деталь, то он её добавляет в базу, но после перезапуска не отображает, хотя в БД она есть. Не знаю даже куда копать и почему так...поигрался с ключами в View - не помогло, в настройках отображения тоже ничего подходящего не нашёл... 2. В той же таблице в мастер View пытаюсь сделать кнопку добавления всех возможных деталей. Создал столбец cxGrid2DBTableView1Column2 в Properties задал тип ButtonEdit, кинул на форму TActionList, создал в нём Action1 с кодом: Код: sql 1. 2. 3. 4. 5. 6. Запрос в SQL отрабатывает нормально, а вот в delphi выдаёт ошибку: "Неправильный синтаксис около конструкции "электронная"". И так любое существующее в базе название подставляешь он пишет что неправильный синтаксис около одного слова... Через отладчик увидел странные символы в строке - #$D#$A. Насколько понял из инета они не влияют. StringReplace их не убрало. Использовал параметры-не помогло...В остальных частях проекта везде такая конструкция работает на ура...Связываю с cxGrid... Буду очень признателен за помощь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2019, 15:13 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAЗапрос в SQL отрабатывает нормально что конкретно это значит ? FOGOT-BAstAв delphi выдаёт ошибку что конкретно это значит? Delphi большой.... FOGOT-BAstAпри работе с cxGrid FOGOT-BAstAсоздал в нём Action1 с кодом: Код: sql 1. ADOQuery4 совсем не похоже на cxgrid FOGOT-BAstA Код: sql 1. Это ненастоящий код. У вас какой-то другой. FOGOT-BAstA Код: sql 1. если бы вы ВСЕ строки поменяли на параметры, а не некоторые - то наверное помогло бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2019, 15:42 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAотладчик увидел странные символы в строке - #$D#$A самые обычные символы https://ru.wikipedia.org/wiki/Перевод_строки https://ru.wikipedia.org/wiki/Возврат_каретки Они вставляются после первой строки перед второй строкой. Они их разделяют. Код: pascal 1. 2. все остальные команды - лишние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2019, 15:45 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochчто конкретно это значит ?[/src] В редакторе запросов SQL SMS запрос Код: sql 1. выполняется без ошибок и выдаёт необходимый набор данных...еще раз скажу, что изначально это запрос на INSERT , просто именно в SELECT'е часть не работает! Ariochчто конкретно это значит? Delphi большой.... Delphi 10 Seattle. Запущенное приложение. При нажатии на кнопку в строке cxGrid'a выдаёт описанную ошибку... AriochADOQuery4 совсем не похоже на cxgrid Согласен... AriochЭто ненастоящий код. У вас какой-то другой. Не согласен... Ariochесли бы вы ВСЕ строки поменяли на параметры, а не некоторые - то наверное помогло бы Зачем менять значение на параметр если оно не меняется? Но отчасти Вы правы, это была проблема второго вопроса - неправильные кавычки, надо было двойные ставить... Первый еще актуален, опять что-нибудь накосячил...))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 11:16 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAВ редакторе запросов SQL SMS запрос а это другой запрос вы не смогли правильно его перевести в константу Delphi место явной ошибки я вам показал FOGOT-BAstAНе согласен... Я ведь не просто так процитировал - там явная ошибка, такой код, который вы нам показываете - не то, что работать не будет, он не скомпилируется даже. Т.е. в программе у вас один код, а на форуме другой FOGOT-BAstAЗачем менять значение на параметр если оно не меняется? 1. Ну например, чтобы вот таких косяков не было в принципе Также чтобы был везде четкий контроль типов, однозначная трактовка типов (те же даты текстом - европейская или американская конвенция? подключился к дргуому серверу - и вдруг смысл запроса изменился). 2. Сегодня не меняется, завтра меняется, послезавтра меняется ползователем, через неделю - SQL injection и вся база в чужих руках. Собственно сам пишешь - уже меняется. FOGOT-BAstAИ так любое существующее в базе название подставляешь P.S. в целом рекомендую прочувствовать такие тексты https://www.chiark.greenend.org.uk/~sgtatham/bugs-ru.html https://sitengine.ru/smart-question-ru.html#symptoms чтобы с одной стороны убирать не важные детали с другой - полностью описывать важные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 13:11 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAхотя в БД она есть. как проверяете, что есть? какие данные у новой и старой детали? - столбец за столбцом сравнивайте сделайте запрос мастер-деталь в SQL SMS и смотрите, что получится если возможно - должно быт ькак-то возможно - вытаскивайте запрос, который "девки" создают и сравнивайте со своим у вас либо непонятки с "девками", либо с содержимы БД, либо в SQL-запросом будете в кучу валить - не разгребётесь. надо по-отдельности проверять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 13:14 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
Arioch как проверяете, что есть? Захожу в SQL SMS делаю запрос на выборку всех деталей по ID изделия и вижу, что в базе больше, чем отражается в приложении. Причём видно, что отображаются записи, которые по-порядку вначале создал, а последняя, которую через месяц добавил, уже нет. Вот скрины сделал, что в моём приложении отображается и что в SMS... Ariochесли возможно - должно быт ькак-то возможно - вытаскивайте запрос, который "девки" создают и сравнивайте со своим CxGrid берёт из DataSource подключённого к таблице БД через ADODataSet (тип таблица). Фильтраций нет никаких... Ariochу вас либо непонятки с "девками", либо с содержимы БД, либо в SQL-запросом будете в кучу валить - не разгребётесь. надо по-отдельности проверять Ну раз в базе данные есть, а в cxGrid'е нет, значит либо баг девки, либо настройки девки/датасета, либо где-то код лишний - вообще всё закоментил на форме - баг остался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2019, 13:24 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
Скрин запроса SQL SMS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2019, 13:26 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
Для правильной работы Master-Details датасет Details должен быть отсортирован по IdMaster ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2019, 14:26 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
может стоит переложить master-detail связку на датасеты, ну пусть detail переоткрывается с новым id, а дочерняя view просто отображает данные в нем? ну что-то вроде куска кода ниже, не оптимизировано и кривовато но как бы работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2019, 14:50 |
|
||
|
Работа cxGrid
|
|||
|---|---|---|---|
|
#18+
C Кавычками то аккуртанее, это не тот орган где можно бездумно туда сюда кавычки лепить. на SQL уходит команда: Код: sql 1. Выполните и получите Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2019, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=77&tid=2039622]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
320ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 658ms |

| 0 / 0 |
