|
|
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть класс, реализующий доступ к некоторой БД. Код: pascal 1. 2. ... Со свойствами, реализующими функционал формирования SQL запросов: Код: 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. Вот так пользоваться: Код: pascal 1. 2. 3. 4. 5. 6. 7. Все нормально, но выглядит подозрительно. Может, просто создать паблик - свойство Код: pascal 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:31:56 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c ума, А зачем изначально разделили SQLText и SQLMore? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:44:43 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c ума Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Поменяй местами названия этих функций и начнет работать, как ты хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:45:31 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c ума Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Тю, блин, этих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:46:29 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMasterСведем очередь c ума, А зачем изначально разделили SQLText и SQLMore?Это наверно специально, секретный код пишут. Чтоб потом, даже если исходники украдут, никто не понял ничего. Тут сам автор, видишь, уже в трех строках запутался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:48:45 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, Да накой плодить кучу геттеров/сеттеров для работы с одним текстом SQL запроса? С ростом числа таких пропертей получаем неоднозначное поведение (SQLMore это что - "дайте две"?) + провоцируем "забывание" установки какого-то свойства + сложность понимания кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:50:15 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMasterпровоцируем "забывание" установки какого-то свойства + сложность понимания кода.Ну я думал, в этом и смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:51:48 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, Развожу руками :) Я знаю одну либу, где у Query есть доп. проперти типа SQLWhere, SQLOrder и т.п. - но эти свойства используются для получения доступа к отдельным частям запроса, не более, и являются продуктом парсинга SQL запроса - применимы эти проперти в 0.1% случаев, в остальном в принципе бесполезны. Ну если ТС хочет игру в угадайку "а чего я сейчас сделаю знаешь?" - пусть себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 14:58:06 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMasterДа накой плодить кучу геттеров/сеттеров для работы с одним текстом SQL запроса? Ну, например, потому, что "назначить текст запроса" и "добавить к запросу ещё одно условие" это две разные операции. Но что имел на мысли автор кода - неясно. Возможно, некоторую дополнительную обработку текста (типа автоматического добавления where и and по необходимости): Код: sql 1. 2. 3. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:01:54 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНу, например, потому, что "назначить текст запроса" и "добавить к запросу ещё одно условие" это две разные операцииНу да. И SQL.Text := и SQL.Text.Add для этого использовать конечно же не интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:18:18 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRockдля этого использовать конечно же не интересно. А местами - просто невозможно (если у "подкладки" запрос хранится не в TStrings). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:30:24 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRockСведем очередь c ума Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Тю, блин, этих. Да. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:45:45 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov...Но что имел на мысли автор кода - неясно... SQLText заменяет весь SQL текст. SQLMore добавляет текст к уже имеющемуся. PS: Я в коде реализаторов накосячил: 20975499 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:48:43 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c умаYuRockпропущено... Тю, блин, этих. Да. :) Вот так должно быть: Код: 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. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 15:52:49 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c ума, Введи еще тогда свойство Filter :string и Filtered:boolean... Вещь нужная кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 16:02:21 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Я не удивляюсь, что потом находятся противники ООП. Я тоже против такого 'ООП' :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 16:24:15 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Сведем очередь c ума, А если у Вас будет запрос с параметрами parambyname()...... как Ваша модель будет работать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 16:53:21 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
а что, в Делфи многострочные литералы в ближайшие 10-20 лет не появятся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 21:53:13 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
andreymxа что, в Делфи многострочные литералы в ближайшие 10-20 лет не появятся? Код: pascal 1. 2. 3. 4. Такие? Или в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 22:28:20 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRockandreymxа что, в Делфи многострочные литералы в ближайшие 10-20 лет не появятся? Код: pascal 1. 2. 3. 4. Такие? Или в чем проблема?такие Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 22:35:27 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
andreymx, не думаю, что такое появится. Хотя не знаю, но мне лично не особо и нужно. Я плюсики ставлю и не жужжу. Тем более, символы переноса строки могут быть разными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 22:40:28 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
авторв Делфи многострочные литералы в ближайшие 10-20 лет не появятся? Врятли. Корни растут из pascal. Да и не нужно это особо никому, мне кажется. У меня возле баз довольно много обвязки, целые запросы я использую не так часто, чаще 'конструкторы' запросов. Очень удобно. авторА если у Вас будет запрос с параметрами Написал небольшую процудерку, все запросы парсятся, строчные параметры заменяются на ':Fieldn' (n = 0,1,2,3), параметры добавляются в компоненту с помощью ParamByName и делается запрос. Удобно - само всё обрабатывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 23:29:32 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon, а можете более детально рассказать (показать пример) застрял сейчас этим вопросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 00:33:33 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
andreymxа что, в Делфи многострочные литералы в ближайшие 10-20 лет не появятся? Надеюсь, нет. Я понимаю их пользу для убогих инструментов типа Явы, но в Делфи они будут только провоцировать плохой стиль программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 01:08:26 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Sashaua, что конкретно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 12:11:51 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon, У меня в классе есть метод выполняющий запросы Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Есть методы через которые запросы отправляються Код: pascal 1. 2. 3. 4. С таким запросом проблем нет, а вот если в запрос необходимо передать параметр например 'select ID,NAME from CLIENTS where id=:id_client' нехочеться в сам запрос вставлять переменные например ('select ID,NAME from CLIENTS where id='+id_client ) а передавать через ParamByName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 13:55:23 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Sashaua, Можно в сделать не процедуру, а функцию, которая вернет Query. Что-то в таком роде (только каркас): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 14:27:34 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Установку транзакции и соединения, старт транзакции и т.п. - я опустил если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 14:29:36 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMaster, в этом случае лучше сделать следующий шаг, обойтись и без процедуры, и без функции, а воспользоваться нормальным компонентом, настроенным в дизайн-тайме. Функция типа "сделай запрос" нужна тогда, когда требуется реализовать какую-то мелочь, под которую жалко и несоразмерно использовать тяжёлую артиллерию. Впрочем, со временем я всё больше убеждаюсь, что потребность в таких функциях означает плохой дизайн приложения. Но тем не менее, в идеале API для неё выглядит примерно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Три последних, соответственно, пользуются первой. Первая нужна, например, для более эффективного фетча в случае долгих запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 14:38:53 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Sashauamakhaon, У меня в классе есть метод выполняющий запросы Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Есть методы через которые запросы отправляються Код: pascal 1. 2. 3. 4. С таким запросом проблем нет, а вот если в запрос необходимо передать параметр например 'select ID,NAME from CLIENTS where id=:id_client' нехочеться в сам запрос вставлять переменные например ('select ID,NAME from CLIENTS where id='+id_client ) а передавать через ParamByName Для таких безобразий ("получить значение по-быстрому") класс, инкапсулирующий объект коннекта, имеет метод: Код: pascal 1. 2. 3. Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 14:58:32 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
softwarer, В одном проекте видел функционал, завязанный именно на динамическое создание Query. Такое впечатление, что пытались эмулировать LINQ или сгородить что-то свое. Пользоваться в принципе можно было, но я бы такого не делал, если проект большой достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 16:06:03 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
softwarerDarkMaster, Функция типа "сделай запрос" нужна тогда, когда требуется реализовать какую-то мелочь, под которую жалко и несоразмерно использовать тяжёлую артиллерию. Поделюсь и своими наблюдениями :) Есть кучка подразделений, которым нужно время от времени посмотреть какой-то отчет (отчеты разные, часто меняются/дополняются). Для этого сделали подсистему, которая умеет строить список доступных для пользователя отчетов, брать текст SQL запроса из БД, при наличии параметров - строить форму для их ввода, выводить результаты в сетку и экспортировать при необходимости куда нужно. Весь код (подсистемы) влез в пару экранов + 1 dfm (форма с PageControl) - все делается с помощью динамически создаваемых Query. Вся работа по поддержке - написать запрос и внести его в специальную табличку вместо постоянной возьни в IDE с настройками в design-time. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 16:17:03 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Могу кинуть самый главный кусок функции. Код: 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. Тут парочка частных функций. И местами частное исполнение. Но, думаю, идея будет понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 17:02:33 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon, что это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 17:12:36 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
чччДmakhaon, что это? Попытка применить параметры только для INSERT/UPDATE видимо. О том, что параметры могут быть для SELECT - догадываются, но значения не придают. О том, что двойные кавычки вполне себе легитимный символ для некоторых SQL серверов и даже диалектов внутри одного SQL сервера - наверное тоже. Ну и так - по мелочи (экранируемые символы по идее тоже лесом пойдут - не всматривался). Но это я так - брюзжу по-стариковски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 17:48:15 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMasterпараметры могут быть для SELECTи для execute. И прбелы могут вначале быть или другие незначащие символы. И Transaction может быть =nil... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:00:40 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMaster, я же написал - частный случай. для моего, частного, случая (FB), работает отлично 10+ лет. нужно - дописывайте по образу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:27:04 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, автори для execute. И прбелы могут вначале быть или другие незначащие символы. И Transaction может быть =nil... у меня не может быть. ни то, ни другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:28:44 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonМогу кинуть самый главный кусок функции. Код: 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. Тут парочка частных функций. И местами частное исполнение. Но, думаю, идея будет понятна. А что оно делает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:33:38 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
schi, Оно делает запросы с параметрами из просто запросов. Удобно - написал запрос и забыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:36:53 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonDarkMaster, я же написал - частный случай. для моего, частного, случая (FB), работает отлично 10+ лет. нужно - дописывайте по образу. Та у меня собственно никаких претензий и нет - у самого лисапед такой системы в сарае припрятан :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:37:24 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonschi, Оно делает запросы с параметрами из просто запросов. Удобно - написал запрос и забыл.А почему нельзя имена параметров ставить такими же, как имена полей? Я лично так делаю и потом их заполнение - наглядно и понятно. Передаю в подобную ф-цию имя таблицы и массив-список полей, и генерится такое: INSERT INTO TABLE(ID,NAME) VALUES(:ID,:NAME) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:46:49 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, 1. Не стоит этот код воспринимать как догму :) Но как идею. Как будет реализовано - на усмотрение. Так называть, или по-другому, как удобно. 2. Мне удобно тем, что я пишу: Код: pascal 1. 2. Функция сама разберется с параметрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 18:56:33 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonYuRock, 1. Не стоит этот код воспринимать как догму :) Но как идею. Как будет реализовано - на усмотрение. Так называть, или по-другому, как удобно. 2. Мне удобно тем, что я пишу: Код: pascal 1. 2. Функция сама разберется с параметрами. Ниче не понял. Если ты уже значения туда загнал, зачем тогда параметры уже? Чтоб потом их поменять можно было еще? Ну так вот, менять их нагляднее, когда они называются как поля, а не Param1, Param2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 19:20:23 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon2. Мне удобно тем, что я пишу: А инъектор о своём удобстве скромно умалчивает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 19:25:12 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, авторНиче не понял. Если ты уже значения туда загнал, зачем тогда параметры уже? затем, что на инсертах и апдейтах на некоторых серверах (подробностей за давностью не помню) просто не работает, валится с исключениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:50:06 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonschi, Оно делает запросы с параметрами из просто запросов. Удобно - написал запрос и забыл. "Каждой хозяйке и не надо покупать этот агрегат. Его одного на весь город хватит. Он будет установлен где-нибудь в центре города, скажем, на Невском. И там будет оборудован ЕГКОЦ - Единый Городской Консервооткрывательный Центр. Это очень удобно. Вот, скажем, пришли к тебе гости, надо для них шпроты открыть. Ты просто берёшь свою консервную банку, быстренько выходишь на улицу, едешь в ЕГКОЦ. Там сдаёшь банку приёмщице, платишь пять копеек новыми и получаешь квитанцию. Приёмщица наклеивает на банку ярлычок и ставит её на конвейер. А ты идёшь себе в зал ожидания, садишься в кресло и смотришь короткометражный фильм на консервную тему. Вскоре тебя вызывают к окошечку, ты предъявлять квитанцию, получаешь открытую банку и спокойненько едешь домой на Васильевский. Удобно, правда?" Вадим Шефнер, "Скромный гений" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 20:58:41 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Жаль, что мы так и не услышали начальника транспортного цеха. Михаил Жванецкий, "Собрание на ликеро-водочном заводе" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 22:04:01 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonYuRock, авторНиче не понял. Если ты уже значения туда загнал, зачем тогда параметры уже? затем, что на инсертах и апдейтах на некоторых серверах (подробностей за давностью не помню) просто не работает, валится с исключениями.Некоторые сервера не поддерживают инсертов с константами? Только с параметрами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 22:47:40 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
YuRock, Возможно, всё заканчивалось исключением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 23:01:53 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
DarkMasterДля этого сделали подсистему, которая умеет строить список доступных для пользователя отчетов, брать текст SQL запроса из БД, при наличии параметров - строить форму для их ввода, выводить результаты в сетку и экспортировать при необходимости куда нужно. Весь код (подсистемы) влез в пару экранов + 1 dfm (форма с PageControl) - все делается с помощью динамически создаваемых Query. Вся работа по поддержке - написать запрос и внести его в специальную табличку вместо постоянной возьни в IDE с настройками в design-time. Как-то так.Тоже такая фигня есть. Но в отчете может быть несколько запросов, в виде иерархии со связанными полями для организации мастер-деталь, выводятся в cxGrid с уровнями. Можно нарисовать отчет в FastReport на этих же запросах, и сохранить в отчете. Потом ещё был допилен показ на внутреннем сайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 23:30:12 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Мне кажется, мой вариант лучше такого: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. У себя, впрочем, я такое вообще конструктором 'собираю': Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 00:48:45 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonмой вариант лучше такогоТакого вообще не бывает :) Когда контролы называются Edit1,2,3,4,5,6... это не код, дальше можно не смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 01:29:04 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaonМне кажется, мой вариант лучше такого:Просто ни ты ни автор приведенного кода не слышали про UpdateSQL. Типично, чо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 01:38:42 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
и у меня есть такой лисапед: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Для вставки можно генерить SQL: Код: pascal 1. списки разные: Код: pascal 1. 2. 3. 4. и вообще очень много подобного накопилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 09:26:41 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
softwarerФункция типа "сделай запрос" нужна тогда, когда требуется реализовать какую-то мелочь, под которую жалко и несоразмерно использовать тяжёлую артиллерию. Впрочем, со временем я всё больше убеждаюсь, что потребность в таких функциях означает плохой дизайн приложения. Если приложение для одной конкретной задачи, то, наверное, потребности в таких подручных средствах и не должно возникать, но для большой мультимегаполисистемы всего в классы не задизайнишь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 09:36:58 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon:cposob_opl_g В мемориз! Такого я на протяжении своей долгой работы с базами данных еще не встречал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 10:25:36 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Гхостик, авторПросто ни ты ни автор приведенного кода не слышали про UpdateSQL. 1. Знаток Гхостик наверно не в курсе, что к IBSQL IBUpdateSQL вообще не цепляется 2. А даже если бы и цеплялся (как к IBQuery) он слабо поможет, если нужно делать запросы к разным таблицам. Точнее - поможет, но эти же запросы придётся в него же и добавлять вместо того, что бы просто добавить в IBQuery. А еще лучше, собрать запрос конструктором. авторТакого я на протяжении своей долгой работы с базами данных еще не встречал Чего только на развалах в интернетах не встретишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 11:08:33 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
> Знаток Гхостик наверно не в курсе, что к IBSQL IBUpdateSQL вообще не цепляется В приведенном коде - db-aware контролы. Т.е. явно TDataSet. К которому IBUpdateSQL легко цепляется. А сравнивать свое решение с явно плохим - значит заранее занижать свою планку качества. > эти же запросы придётся в него же и добавлять вместо того, что бы просто добавить в IBQuery. Чем "просто добавить" проще чем "добавить"? Тем что "просто" же! Про тупой код связывания контролов с параметрами о котором речь и велась, уже забыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 11:48:03 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Гхостик, авторТ.е. явно TDataSet. К которому IBUpdateSQL легко цепляется У меня для тебя плохие новости :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 13:19:17 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Более того. К TDataSet'у в принципе нельзя прицепить ничего из IBX'а, потому что это разные библиотеки. Как и к ADOшным компонентам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 13:22:56 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
makhaon, авторпотому что это разные библиотеки Если быть еще более точным, то ibx и tdataset вообще разные слои абстракции. А у ADO апдейтера вообще нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 13:28:44 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
> Если быть еще более точным, то ibx и tdataset вообще разные слои абстракции. Ок, TIBDataSet. > А у ADO апдейтера вообще нет. Это повод не использовать ADO или дописать чтобы он таки появился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 14:37:00 |
|
||
|
Насчет свойств формирования SQL запроса
|
|||
|---|---|---|---|
|
#18+
Гхостик, Чудо, ты хоть в среду заглядывай Прежде чем писать, да еще с таким пафосом. Обычно пишущие запросы делаются с помощью IBSQL. К нему апдейтер не цепляется вообще. Но ок, будем делать их с помощью IBQuery. Итак, два запроса: Код: sql 1. Код: sql 1. У меня это 'собирается' 'поэлементно' и даётся команда на выполнение запроса. Чем тут TIBUpdateSQL поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 15:01:59 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041524]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
18ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 360ms |

| 0 / 0 |
