pavlenko.vladimir.v, спасибо!
Хотя, конечно, помучался пока понял как это заставить работать.
1 2024-01-28 05:20:00
Re: Узнать состояние окна формы (открыто - закрыто) (3 replies, posted in Russian)
2 2024-01-22 14:03:48
Topic: Узнать состояние окна формы (открыто - закрыто) (3 replies, posted in Russian)
Есть необходимость прогнать процесс через несколько форм.
Form1.Show;
Form2.Show;
Form3.Show
etc
Выходные результаты каждой формы являются входными для следующей.
Как затормозить работу программы до закрытия выполняемой формы?
Можно, конечно, while boolean =0 do delay=500 со взводом флага по закрытию формы (событие OnExit), но опять эти прыжки по коду....
Может есть какой-то параметр типа WindowState = Close?
3 2023-12-15 13:34:48
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Просто сразу не въехал, что в подзапросе именно таблица х определяется как алиас, можно же прочитать и так
(select max(x2.id) from x) as x2, но тогда всплывает рекурсия...
4 2023-12-14 15:31:48
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Кроме того, пусть я ещё не постиг смысл конструкции x2.id и y2.id, но есть какое-то смутное ощущение, что я как-то до этого должен определить, что значение x2 является последним для линка z1, а y2 - для линка z2. Но если у нас появится (а оно появится) значение x5 для линка z1, или y5 для линка z2, то что, переделывать запрос?
5 2023-12-14 14:57:10
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
идея такая:
select * from z left join x on x.id = (select max(x2.id) from x as x2 where x2.id_z = z.id ) left join y on y.id = (select max(y2.id) from y as y2 where y2.id_z = z.id )
Возможно, это какие-то тонкости языка SQL, которых я не постиг (напоминаю - я новичок)
Но из синтаксиса этого запроса x2, y2 - это какие-то временные таблицы (которые ещё непонятно как сформированы)
А из скрина следует, что это просто данные таблиц x и y. (Да из синтаксиса следует , в общем, то же самое)
Какой-то дуализм из квантовой физики
6 2023-12-14 14:26:02
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
идею не бросил, вот до чего додумался, главное - работает:
SELECT z.z,
a,
b,
c,
d,
MAX(id) as id
FROM (SELECT x.a as a,
x.b as b
y.c as c,
y.d as d,
x.z_id as z_id,
MAX(x.id),
y.id as id
FROM x, y
WHERE x.z_id=y.z_id
GROUP BY x.z_id (можно y.z_id, один фиг), y.id)
LEFT OUTER JOIN z ON z_id=Z.id
GROUP BY z.id
7 2023-12-08 17:20:06
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
netros wrote:Я за 2 недели чего только не прочитал, не перепробовал...
На мой взгляд дело не в очень корректной работе оператора GROUP BY в SQLite/
Просто не первый раз сталкиваюсь с тем, что оператор должен бы сработать одним образом (ну так пишут в книжках), а на выходе имеем немного не то.
Ну хватит... не смешите народ.
Кстати Microsoft, GOOGLE и другие гиганты не жалуются на работу GROUP BY в SQLite. Может не знают про проблемы.при работе с аггрегатными функциями существуют определенные правила для столбцов в SELECT и GROUP BY.
Ну что тут сказать...
Не знаю как GOOGLE, а вот что Microsoft, Oracle, IBM и другие гиганты не используют SQLite, а предпочитают свои базы данных - это факт.
И, кстати, на Acsess мне удалось добиться результата без особых проблем....
8 2023-12-07 15:14:20
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Улыбнуло
Вокруг столько литературы, сайтов, примеров ...Кстати вы привели пример CROSS JOIN даже не подозревая об этом.
Ну почему же не подозревая? :-)
Я за 2 недели чего только не прочитал, не перепробовал...
На мой взгляд дело не в очень корректной работе оператора GROUP BY в SQLite/
Просто не первый раз сталкиваюсь с тем, что оператор должен бы сработать одним образом (ну так пишут в книжках), а на выходе имеем немного не то.
9 2023-12-07 14:58:25
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Спасибо.
А как на счет INNER ?Ой догадался они без иерархии , они равнозначны. Правильно ?
Они в иерархии, но на одном уровне, просто как бы в разных ветках от Z
10 2023-12-07 14:54:25
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Спасибо.
А как на счет INNER ?
INNER объединяет только те данные, которые есть в обеих таблицах, X и Y. В моём случае это не обязательно, поэтому эти данные выпадут из выборки, а они мне нужны. В этом случае сработал бы FULL JOIN, но его опять же нет. Но конструкция
SELECT *
FROM X,Y
на мой взгляд даёт почти тот же результат
11 2023-12-07 14:46:39
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Хотя сейчас начал понимать идею к245, но боюсь не сработает.
Даже задумался, не сделать ли всё на Acsess`e.
12 2023-12-07 14:32:13
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
netros wrote:...таблицы X и Y находятся СПРАВА, поэтому LEFT JOIN не проходит.
У таблицы Z слева ещё есть справочники, ...
Не совсем понятно о чем вы говорите.
Основную таблицу выборки вы выбираете сами так же как и соединение с другими таблицами,
исходя из того результата который вы хотите получить.
Есть такой момент, возможно условный, таблицы, которые имеют связь с другой таблицей, считается, что они находятся справа от этой таблицы и подключаются оператором RIGHT JOIN. Т.е. одному значению таблицы СЛЕВА соответствует несколько значений из таблицы СПРАВА. Иерархия называется. Оператор LEFT JOIN подключает таблицы более верхнего уровня, а RIGHT JOIN -более низкого. Для примера: относительно таблицы НОМЕР
-
ТИП - Модель - (LEFT JOIN) - НОМЕР - (RIGHT JOIN) - ПЕРЕМЕЩЕНИЕ
13 2023-12-06 14:40:04
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Кстати, а зачем ещё загружать и таблицу Z?
Ведь те же данные есть в таблицах x и Y?
Ведь так вывод возрастёт ещё на порядок. (Ну до срабатывания WHERE)
14 2023-12-06 14:10:34
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Спасибо, sparrow, тут есть над чем подумать, проверю.
Для К245 - к сожалению таблицы X и Y находятся СПРАВА, поэтому LEFT JOIN не проходит.
У таблицы Z слева ещё есть справочники, просто я не стал усложнять вопрос :-)
15 2023-12-03 07:06:09
Topic: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Помогите начинающему, уже всю голову сломал.
Есть 2 таблицы, независимые друг от друга, но связанные по одному параметру с третьей таблицей.
т.е. X.id_Z = Z.id и Y.id_Z = Z.id/
Нужно свести данные из этих 2 таблиц в одну и выбрать строки с максимальными id из каждой таблицы (одновременно) для каждого элемента из таблицы Z. Проще всего было бы объеденить эти таблицы через RIGHT JOIN от таблицы Z, но... в SQLite он не работает.
Наиболее близки результат даёт вот это:
SELECT Z.Z,
.....,
.....,
MAX(Y.id),
MAX(X.id)
FROM X, Y
LEFT OUTER JOIN Z ON X.id_Z = Z.id
WHERE X.id_Z= Y.id_Z
GROUP BY Z.id
Для полей X.id и Y.id всё срабатывает как надо, но вот для остальных полей данные подтаскиваются из совершенно левых строк, а не из соответствующих условию.
Если перенести выборку максимальных значений в WHERE, то правильно срабатывает только для первого значения из таблицы Z, для остальных берётся первая попавшаяся строка.
Как уже ни крутил, даже через временные таблицы пробовал - нужного результата не добился.
Может у кого идеи есть.
16 2018-10-16 16:13:51
Re: Экспорт Грида (4 replies, posted in Russian)
k245, спасибо.
Я уже и сам подумывал о временной таблице.
Только вот как сделать, чтобы таблица была именно временной?
Пока приходится пристреливать DROP'ом...
17 2018-10-02 07:36:36
Topic: Экспорт Грида (4 replies, posted in Russian)
Подскажите, как можно экспортировать грид (именно грид!) с результатами в FastReport
SQL-отчёт не проходит, так как грид формируется скриптом на основе другого грида, в который выводится запрос.
Ну или как вариант подойдёт экспорт в Exel, но мне нужно, чтобы в Exel можно было в заголовок добавить данные из DateTimPicker'ов и текстовку.
18 2018-08-06 15:57:58
Re: SQL-запрос в скрипт (5 replies, posted in Russian)
Блин, не могу понять, почему по запросу
s := VarToStr(SQLExecute('SELECT * FROM Table'));
выводится только первое поле? Неужели каждое поле придётся вытягивать отдельным запросом?
И какой используется сепаратор строк?
19 2018-08-06 12:24:52
Re: Как задать количество столбцов в Гриде? (4 replies, posted in Russian)
Спасибо. Но не работает.
Не определён тип TNxTextColumn.
20 2018-08-06 09:00:04
Re: Как задать количество столбцов в Гриде? (4 replies, posted in Russian)
Не совсем.
Нужно что-то типа
TableGrid.AddRow() только для столбцов
TableGrid.Columns.Add и TableGrid.AddColumns не срабатывают
21 2018-08-06 04:13:09
Topic: Как задать количество столбцов в Гриде? (4 replies, posted in Russian)
Извиняюсь, конечно, но нигде не нашёл ответа на вопрос:
Как указать количество столбцов в Гриде, или добавить столбец?
22 2018-08-06 03:50:21
Topic: SQL-запрос в скрипт (5 replies, posted in Russian)
Уже всю голову сломал.
Как SQL-запрос запихнуть в двумерный массив, и какого типа.
если
var Array: array of extended;
begin
Array := SQLExecute('SELECT * FROM Table');
for i := 0 to iCol do
begin
TableGrid.Cells[0, i] := VarToStr(Array[0,i]);
TableGrid.Cells[1, i] := Array[1,i];
end;
end;
то без ошибок выдаёт пустое значение.
а если
var Array: array of string;
begin
Array := SplitString(VarToStr(SQLExecute('SELECT * FROM Table')), '|');
for i := 0 to iCol do
begin
TableGrid.Cells[0, i] := Array[0,i];
TableGrid.Cells[1, i] := Array[1,i];
end;
end;
то для первого значения выдаёт только первое поле, а второе просто отсутствует
И ещё вопрос вдогонку
Можно ли в грид вставить CheckBox? не "Нет", "да", а именно чекбокс?
23 2018-06-21 16:05:10
Re: Создание текстового файла (2 replies, posted in Russian)
Спасибо большое!
24 2018-06-21 00:35:56
Re: Русская документация My Visual Database (46 replies, posted in Russian)
Неплохо бы в справку добавить описание и остальных функций, используемых в программе.
А не только относящихся к визуальным объектам.
25 2018-06-20 13:34:28
Topic: Создание текстового файла (2 replies, posted in Russian)
Подскажите, как создать файл, с последующей записью в него текстовой переменной, не из базы.
А то в версии 1,46 нет функций CreateFile или SaveFile. SaveFileFromDatabase немного не то.