|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Polesov Совершенно не обязательно. Какой компонент ADataSet используется? Текст запроса можно посмотреть в отладчике. Надо на строке ADataSet.Active := true; поставить точку останова И при попадании в нее в окне "Evalute/Modify" посмотреть значение ADataSet.SelectSQL.Text Или в том же окне "Evalute/Modify" сохранить текст запроса, введя ADataSet.SelectSQL.SaveToFile( <FileName.Ext> ) ADataSet - компонент TIBDataSet про " Evalute/Modify " - я так и делал, я от туда вставлял запрос в IBExpert ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 17:03 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky Посмотри через трассировку, что фактически улетает на сервер, и про эхалиб лучше спросить в соседнем разделе. Уже... шел, шел... "F8" (через разные "System.Classes", "System", "System.TypInfo", "System.SysUtils") минут 10 - терпения не хватило... Хотя наверное нужно выборку сократить до записей пяти (просто там их у меня 310) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 17:13 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
как подсказали, собака может быть зарыта в методе: Код: sql 1.
и в этом методе поставить точку останова. пришлось добавить в проект модуль "EhLibIBX" P.S. Да этот метод срабатывает уже после моих строк: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 21:08 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Kos-2010 про " Evalute/Modify " - я так и делал, я от туда вставлял запрос в IBExpert А теперь то же самое после строки Код: pascal 1.
и сравнить с тем, что было до ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 21:15 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Kos-2010, ваше applySorting может само добавлять к запросу order by. Прочитайте документацию. И я так понял, финальный запрос, который выдает ошибку, мы не увидим? Я так и не понял - каким образом вы В СЕРЕДИНУ запроса сами добавляете order by fieldname? Order by может быть только в самом конце запроса (ну или в подзапросе, но это не приветствуется в SQL). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 21:57 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Метод: Код: sql 1. 2. 3. 4. 5. 6.
во время отладки в " SQL.Text " Код: sql 1.
я вижу, что в предложении сортировки стоит Код: sql 1.
РАЗОБРАЛСЯ проблема в подстановке в предложении " order by " Код: sql 1. 2.
в том что вместо наименования поля, например " TYPE " процедура Код: sql 1. 2.
подставляет порядковый номер поля c запроса, т.е " eq.CALIBRATION_INTERVAL ". Хотя в самой таблице под номером 3 стоит поле не с названием "eq.CALIBRATION_INTERVAL", а с названием " eq.TYPE "-по которому я жму в гриде заголовок колонки. Т.е. сортировка происходит не по ЖЕЛАЕМОМУ ПОЛЮ Нужно как-то туда поставить НУЖНОЕ название поля или его номер ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 22:07 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
kdv Kos-2010, ... Я так и не понял - каким образом вы В СЕРЕДИНУ запроса сами добавляете order by fieldname? ну парсингом запроса занимаюсь: в средине запроса ищу " order by " и потом заменяю его на свой " order by " и как я выше указывал Составил такую комбинацию: Код: sql 1. 2. 3. 4. 5.
В которой «L_SQL1» часть представленного выше запроса до 'order by ', а «L_SQL2» - часть запроса после 'order by '. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 22:15 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Kos-2010Хотя в самой таблице под номером 3 стоит поле да хоть под номером 10. ORDER BY number - это номер столбца в выборке. Его имя и порядковое место в таблице вообще до лампочки. У вас "eq.TYPE" стоит на 5м месте, значит должно быть ORDER BY 5 Kos-2010а с названием "eq.TYPE"-по которому я жму в гриде заголовок колонки. то есть, грид не соображает, что у этого столбца в выборке номер не тот, который в списке грида. Получается, в таблице у вас один порядок столбцов, в запросе - другой, а в гриде - третий? Kos-2010 ADataSet.SelectSQL.Add('order by '+ AColumn.FieldName+' '); в AColumn.FieldName что написано - eq.TYPE или eq."TYPE" ? кстати, надо при цитировании запроса переводы строк делать хотя бы. А то в одну строку текста заматывает крутить по горизонтали. Имейте уважение к читателям форума и тем, кто вам отвечает Kos-2010select eq.ID, eq.HOST_LABORATORY, eq.CALIBRATION_INTERVAL from EQUIPMENT eq where ARCHIVE in (1) and PASSPORT = 1 ' #$D#$A#$D#$A#$D#$A'ORDER BY 3 DESC' тут то что не так? три столбца, order by 3, всё нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2020, 02:54 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
kdv Kos-2010select eq.ID, eq.HOST_LABORATORY, eq.CALIBRATION_INTERVAL from EQUIPMENT eq where ARCHIVE in (1) and PASSPORT = 1 ' #$D#$A#$D#$A#$D#$A'ORDER BY 3 DESC' тут то что не так? Видимо, то, что в запросе отсутствует eq.TYPE и при order by 3 сортировка производится по полю eq.CALIBRATION_INTERVAL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2020, 10:12 |
|
Не получается вывести строки, которых нет в одной из таблиц
|
|||
---|---|---|---|
#18+
Если кому интересно на EhLib'e в таком случае посоветовали Или написать свою версию TIBSQLDatasetFeaturesEh и в порожденном классе указать в конструкторе указать Код: sql 1.
зарегистрировав мой класс сортировки и фильтрации для DataSet'а. Код: sql 1. 2. 3.
или Если данное изменение необходимо только в одном гриде, то можно переопределить событие DBGridEh.OnSortMarkingChanged и вызвать Код: sql 1. 2.
напрямую. Ну я воспользовался вторым вариантом. Пока работает. Далее посмотрим. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2020, 16:17 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1560188]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
135ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 262ms |
0 / 0 |