SQL или Mysql вывод результата произвольного запроса

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

Подскажите, у кого есть готовое и рабочее решение сабжа для вывода в таблицу (например: IMDD), результат примерно около 20-и полей (колонок) произвольного формата.
Хочу выводить разные запросы в одной таблице.
Можно готовый шаблон. Возможно финансовое вознаграждение :)
С10-11 ABC

Простой пример запроса и результата для вывода в таблицу:

Код: Выделить всё

SELECT PROD_ID as `Код`,product.PROD_NAME as `Название` FROM product LIMIT 5;
Вложения
mysql.png
mysql.png (2.58 КБ) 2702 просмотра
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

SQL или Mysql вывод результата произвольного запроса

Сообщение Дед Пахом »

gopstop2007 писал(а): 01 Март 2020, 18:25 Хочу выводить разные запросы в одной таблице.
Здесь слово "таблица" что означает?
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

Дед Пахом писал(а): 01 Март 2020, 18:37 Здесь слово "таблица" что означает?
Один стандартный browse, в котором я мог бы использовать стандартные плюшки browse с полученным результатом, как сортировку колонок, маркировку записей и т.п.

Видится это так, например:
1. Сombo c названиями списка запросов.
Сам запрос пишется в realtime для каждого клиента индивидуально, без компиляции программы.
2. При выборе запроса из Combo и нажатия кнопки выполнить
3. Заполняется Browse результатами запроса
4. Формат и ширина колонок формируется от формата данных, если это возможно, формат не обязательно, а вот ширину хотелось бы :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

SQL или Mysql вывод результата произвольного запроса

Сообщение Дед Пахом »

gopstop2007 писал(а): 01 Март 2020, 18:56 Один стандартный browse, в котором я мог бы использовать стандартные плюшки browse
Такого нет, есть только вывод в обычный listbox и в отчёт. Хотя сортировка решается через order by в запросе.
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

Дед Пахом писал(а): 01 Март 2020, 18:59 Такого нет, есть только вывод в обычный listbox и в отчёт. Хотя сортировка решается через order by в запросе.
хорошо, а можно посмотреть? Может подойдет
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

SQL или Mysql вывод результата произвольного запроса

Сообщение Дед Пахом »

Пример тут, я уже выкладывал: меню SQL-> Arbitrary SQL Queries, в текстовом поле можно ввести произвольный запрос по таблицам students, classes, majors, teachers, ciurses, enrollme, например

Код: Выделить всё

SELECT s.lastname || ' ' || s.firstname AS "full name", s.Number AS number,
s.GradYear AS "grad year", m.description AS major,
s.city AS city, s.telephone AS phone
FROM students s
JOIN majors m ON m.number=s.major
ORDER BY s.lastname
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

Посмотрел, есть вопросы, написал в личку
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

SQL или Mysql вывод результата произвольного запроса

Сообщение Yufil »

Поищи здесь по слову "LoadQueueFromSQL" - вдруг это оно. Ну или почти. Много лет юзал...
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

Yufil писал(а): 01 Март 2020, 20:20 Поищи здесь по слову "LoadQueueFromSQL" - вдруг это оно. Ну или почти. Много лет юзал...
спасибо, фанат и адепт этого слова, много использую в проектах :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

SQL или Mysql вывод результата произвольного запроса

Сообщение kreator »

В примерах есть SVOracle.app. там есть простейший "SQL Builder". Вряд ли Вас удовлетворит, но посмотреть можно.
We are hard at work… for you. :)
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

SQL или Mysql вывод результата произвольного запроса

Сообщение morkovin »

gopstop2007 писал(а): 01 Март 2020, 18:25 кого есть готовое и рабочее решение сабжа для вывода в таблицу (например: IMDD), результат примерно около 20-и полей (колонок) произвольного формата.
Хочу выводить разные запросы в одной таблице.
Для MS SQL я особо не парился и использовал для этой цели sqlcmd.
Вот пример bat-файла:

Код: Выделить всё

start /I /min sqlcmd -S TYCOON\SQL2008R2 -U myLogin -P mypsw -i SQL_ListSpec.sql -o myoutput.txt -s ";"
то же самое, но без вывода заголовка полей:

Код: Выделить всё

start /I /min sqlcmd -S TYCOON\SQL2008R2 -U myLogin -P mypsw -i SQL_ListSpec.sql -o myoutput.txt -s ";", -h "-1"
Вот полученный выходной текстовый файл:
Контекст базы данных изменен на "Abitur".
ID ;Shortname ;FullName ;SrokObuchen;StoimObuch;StoimObuchPoln;DopProf ;ChangeDate ;FormObuch ;Arhiv;SrokObuchenY;SrokObuchenM;DATEBEGINLKONTRAKT;DATEENDLKONTRAKT;IdShtat ;PlanPriema ;SokrName
------------------------------------;----------------------------------------;------------------------------------------------------------------------------------------------------------------------;-----------;----------;--------------;------------------------------------------------------------------------------------------------------------------------;-----------;--------------------;-----;------------;------------;------------------;----------------;-----------;-----------;--------------------
733c1df7-0952-4820-bdf4-97fd64bbaefb;060501 ;Лабораторная диагностика на базе среднего (полного) общего образования 11 кл ; 3.00; .00; .00; ; 0;очная ; NULL; 2; 10; NULL; NULL; NULL; NULL;NULL
3 ;060102 ;060102 Акушерское дело 11 кл. (очная форма обучения на базе среднего общего образования) ; 4674.71; 21207.00; 63621.00; ; 0;очная ; NULL; 2; 10; 76583; 77616; NULL; NULL;NULL
9247ae04-94d2-46c7-a7d0-66aeffb31ac0;31.02.01 ;31.02.01 Лечебное дело (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 3; 10; NULL; NULL; 1; 125;Леч-11
426a5469-b5b3-4083-9518-dbfb00d1261a;31.02.02 ;31.02.02 Акушерское дело 9 кл. (очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 3; 10; NULL; NULL; 1; 50;Ад-9
9 ;060501 (09) ;060501 Сестринское дело на базе основного общего образования (базовой подготовки) ; .00; 21077.00; 84308.00; ; 0;очная ; NULL; 3; 10; 76583; 77981; NULL; NULL;NULL
c758cee0-3121-4d25-99d0-f91b58c9a6dd;31.02.02 ;31.02.02 Акушерское дело 11 кл. (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 2; 10; NULL; NULL; 1; 25;Ад-11
e27cf296-e09f-4e9b-ae29-c6568407ccb3;31.02.03 ;31.02.03 Лабораторная диагностика 11 кл. (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 2; 10; NULL; NULL; 1; 25;Лаб-11
7184e148-50a0-4ab0-a5d7-baeeb3905522;31.02.03 ;31.02.03 Лабораторная диагностика 9 кл. (очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 3; 10; NULL; NULL; 1; 50;Лаб-9
de399df3-ddee-4567-ac62-28bb237b11eb;31.02.05 ;31.02.05 Стоматология ортопедическая (очная форма обучения) на базе среднего общего образования ; 3.00; .00; .00; ; 77984;очная ; 1; 2; 10; NULL; NULL; 1; 25;Ст-11
172473a3-f924-48ba-b071-8a62214e567c;34.02.01 ;34.02.01 Сестринское дело 11 кл. (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 2; 10; NULL; NULL; 1; 75;Сд-11
42a0b19a-738c-4ca2-a3c5-bffd0a93bfd5;34.02.01 ;34.02.01 Сестринское дело 9 кл. (очно-заочная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 77984;очная ; 0; 4; 10; 0; 0; 1; NULL;NULL
f52e817a-d471-4504-b027-3a644a08f75f;34.02.01 ;34.02.01 Сестринское дело (очно-заочная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 77984;очно-заочная ; 1; 3; 10; 0; 0; 1; 30;Сд-оз
3d0c668d-f9a7-478c-9196-e7414df6297b;34.02.01 ;34.02.01 Сестринское дело 9 кл. (очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 77984;очная ; 1; 3; 10; NULL; NULL; 1; 200;Сд-9
21 ;060110.51 ;060604 Лабораторная диагностика 11 кл. (очная форма на базе среднего общего образования) ; 3.00; .00; .00; ; 0;очная ; 0; 2; 10; NULL; NULL; NULL; NULL;NULL
23 ;060109.51 ;060109.51 Сестринское дело (на базе годичных курсов по подготовке медицинских сестер для детских яслей) ; .00; 4509.00; 26149.00; ; 0;очно-заочная ; 0; 2; 5; 76583; 77467; NULL; NULL;NULL
25 ;060501 ;060501 Сестринское дело 9 кл. (углубленной подготовки, очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 0;очная ; NULL; 4; 10; 0; 0; NULL; NULL;NULL
26 ;060501.01 ;060501.01 Младшая медицинская сестра по уходу за больными (на базе среднего (полного) общего образования) ; 3.00; .00; .00; ; 0;очная ; 0; NULL; 10; NULL; NULL; NULL; NULL;NULL
20003 ;060102 ;060102 Акушерское дело 9 кл. (очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 0;очная ; NULL; 3; 10; NULL; NULL; NULL; NULL;NULL
20007 ;060501 (11) ;060501 Сестринское дело 11 кл. (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 0;очная ; NULL; 2; 10; NULL; NULL; NULL; NULL;NULL
20008 ; ;060501 Сестринское дело (очно-заочная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 0;очно-заочная ; NULL; 3; 10; NULL; NULL; NULL; NULL;NULL
20009 ; ;060501 Сестринское дело 9 кл. (очная форма обучения на базе основного общего образования) ; 3.10; 15000.00; 65500.00; ; 0;очная ; NULL; 3; 10; NULL; NULL; NULL; NULL;NULL
20011 ;060604 ;060604 Лабораторная диагностика 9 кл. (очная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 0;очная ; NULL; 4; 10; NULL; NULL; NULL; NULL;NULL
20018 ;060203 ;060203 Стоматология ортопедическая (очная форма обучения на базе среднего общего образования) ; 3.00; 24000.00; .00; ; 0;очная ; NULL; 2; 10; NULL; NULL; NULL; NULL;NULL
20019 ; ;060101 Лечебное дело (очная форма обучения на базе среднего общего образования) ; 3.00; .00; .00; ; 0;очная ; NULL; 3; 10; NULL; NULL; NULL; NULL;NULL
20020 ;060501 ;060501 Сестринское дело 9 кл (очно-заочная форма обучения на базе основного общего образования) ; 3.00; .00; .00; ; 0;очно-заочная ; 0; 4; 10; NULL; NULL; NULL; NULL;NULL

(обработано строк: 25)
Удаляем первую строку Контекст базы данных изменен на "Abitur" и последнюю (обработано строк: 25). И сохраняем в CSV. Далее этот файл импортируется в ASCII или BASIC файл, прописанный в словаре с запасом по полям. Показываем юзеру этот файл в станд. броузе.
Мой sql-файл:

Код: Выделить всё

USE Abitur
SELECT [ID]
      ,[Shortname]
      ,[FullName]
      ,[SrokObuchen]
      ,[StoimObuch]
      ,[StoimObuchPoln]
      ,[DopProf]
      ,[ChangeDate]
      ,[FormObuch]
      ,[Arhiv]
      ,[SrokObuchenY]
      ,[SrokObuchenM]
      ,[DATEBEGINLKONTRAKT]
      ,[DATEENDLKONTRAKT]
      ,[IdShtat]
      ,[PlanPriema]
      ,[SokrName]
  FROM [Abitur].[dbo].[OTDELEN]
GO
Вот как выглядит у меня:
02.03_2.png
Я не делал для себя броус, т.к. у меня корректирующие или подсчитывающие запросы. Возвращают лишь несколько цифирек.
З.Ы. Ну, ес-но, обработка текстового файла выполняется программно.
WBR, morkovin
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

SQL или Mysql вывод результата произвольного запроса

Сообщение gopstop2007 »

kreator писал(а): 02 Март 2020, 10:36 В примерах есть SVOracle.app. там есть простейший "SQL Builder". Вряд ли Вас удовлетворит, но посмотреть можно.
Спасибо, да, не удовлетворила, но посмотрел :)
morkovin писал(а): 02 Март 2020, 18:27 Для MS SQL я особо не парился и использовал для этой цели sqlcmd.
Вот пример bat-файла:
...
Спасибо, интересно и неординарно.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить