Как мне написать в окно консоли для отладки?

Можно использовать GROUP_CONCAT :

SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;

, Поскольку Ludwig заявил в [1 110] его комментарий, можно добавить DISTINCT оператор для предотвращения дубликатов:

SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies 
GROUP BY person_id;

, Поскольку Jan заявил в [1 111] их комментарий, можно также отсортировать значения прежде, чем интегрировать его с помощью ORDER BY:

SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;

, Поскольку Dag заявил в [1 112] его комментарий, существует 1 024-байтовый предел на результат. Для решения этого выполните этот запрос перед запросом:

SET group_concat_max_len = 2048;

, Конечно, можно измениться 2048 согласно потребностям. Вычислить и присвоить значение:

SET group_concat_max_len = CAST(
    (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
    FROM peoples_hobbies 
    GROUP BY person_id)
    AS UNSIGNED
);

27
задан Peter Mortensen 16 January 2013 в 09:05
поделиться

2 ответа

В Windows самый простой способ вывести отладочную информацию - это использовать OutputDebugString(), а затем использовать приложение, способное получать этот вывод. Средство просмотра событий в самой Delphi IDE может получать эти входные данные, или вы можете использовать приложение DebugView из SysInternals для получения выходных данных в системе, в которой не установлена ​​IDE. AFAIK, GExperts имеет аналогичный инструмент тоже. Это связано с тем, что приложение с графическим интерфейсом по умолчанию не имеет консоли для записи выходных данных, в противном случае вы должны создать консоль (см. Ответ Джерри).

Одним из преимуществ OutputDebugString() является то, что приложение будет работать без проблем, даже если вызов переходит в сборку релиза (или если он оставлен там намеренно), но будьте осторожны, чтобы не выводить конфиденциальную информацию, потому что они могут читать с помощью одного из инструментов выше.

Вы также можете создать специальную форму (то есть с блокнотом для заметок) и направить туда вывод.

Существуют также расширенные возможности регистрации, такие как SmartInspect , CodeSite и другие.

31
ответ дан 28 November 2019 в 04:32
поделиться

У Delphi есть опция для этого, проверьте «Создать консольное приложение» в опциях компоновщика для проекта. Стандартный ввод / вывод будет направлен в консольное окно, которое будет сопровождать ваше приложение GUI . Затем вы можете использовать Writeln и т. Д., Как обычно.

Прочитайте Вывод (или Ввод ) из документов:

Программы Delphi имеют стандартный выходной файл, если они связаны как консольные приложения.

10
ответ дан 28 November 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: