Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подсказки и ловкости / 7 сообщений из 7, страница 1 из 1
04.04.2019, 20:55
    #39796801
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
Вроде бы еще такой темы не было (??). Суть - неоднозначные неожиданные вещи в Delphi ведущие к нужным результатам.

Например, надо текст SQL запроса из FDQuery1.SQL.Text в режиме отладки закинуть в SSMS или куда еще.
* Останавливаемся на точке останова
* Ctrl+F4
* Expression: Clipboard.AsText<Enter>
* New Value: FDQuery1.SQL.Text<Enter>
* Переключаемся на SSMS и Ctrl+V

Другой вариант
* Останавливаемся на точке останова
* Ctrl+F4
* Expression: FDQuery1.SQL.SaveToFile('c:\aaa.sql')<Enter>
* Переключаемся на SSMS
* Открываем c:\aaa.sql

ХЗ что еще добавить ...
...
Рейтинг: 0 / 0
04.04.2019, 21:17
    #39796808
delphinotes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
А как же FD Monitor?

Для цели отладки SQL-запросов.. и даже не только отладки, а иногда, спустя месяцы/годы, когда уже не помнишь, что и делает приложение, у нас реализована такая вещь. При включении флага в конфиге, каждый SQL-запрос из АРМа дублируется в спец. окно (путём простой отсылки WM_COPYDATA, по аналогии с GExperts ).

Сделано это было однажды (на уровне системной библиотеки), потом для удобства была правка: показывается SQL-запрос как есть, затем он дублируется с подстановкой bind-значений (чтобы можно было просто скопировать, вставить и выполнить без доп. телодвижений).

Очень удобно. Плюс отдаём это продвинутым клиентам, чтобы они могли сами промониторить запросы от приложений с целью самостоятельно разобраться/написать свой отчёт какой-нибудь...
...
Рейтинг: 0 / 0
04.04.2019, 21:21
    #39796811
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
delphinotesприложение, у нас реализована такая вещь. При включении флага в конфиге, каждый SQL-запрос из АРМа дублируется в спец. окно

Осталось еще добавить контроль производительности и подсказки по оптимизации запросов / БД, а в спец режиме автоматическая оптимизация БД (добавление индексов и.т.д)
...
Рейтинг: 0 / 0
04.04.2019, 21:26
    #39796814
delphinotes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
asviridenkov,

вот я сейчас не понял, это сарказм? :)
Метка времени - при желании включается. Контроль скорости prepare/describe/first fetch - реализован, этого хватает.
Индексы - это уже всё-таки задача разработчика БД, нежели программиста интерфейса (даже если обе (и более) роли играет одно лицо)
...
Рейтинг: 0 / 0
04.04.2019, 21:31
    #39796816
Michael Longneck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
Я использую OutputDebugString с запросами. IFDPhysCommand конвертирую в скрипт и выдаю (объявляю переменные с именами параметров нужных типов, вставку в tvp заполняю, макросы разрешаю и.т.д.). Если вдруг надо, то ставится DebugView и смотрится.
...
Рейтинг: 0 / 0
05.04.2019, 12:04
    #39797145
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
Dmitry ArefievНапример, надо текст SQL запроса из FDQuery1.SQL.Text в режиме отладки закинуть в SSMS или куда еще.
Когда я был маленьким мальчиком, я сделал в программе волшебную кнопку, по которой в любом месте и любой форме открывается примерно такое окно. Так гораздо, несравнимо удобнее - например, можно смотреть актуальные данные во временных таблицах и/или незакоммиченные текущей транзакцией.
...
Рейтинг: 0 / 0
05.04.2019, 16:24
    #39797424
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсказки и ловкости
Dmitry ArefievНапример, надо текст SQL запроса из FDQuery1.SQL.Text в режиме отладки закинуть в SSMS или куда еще.
* Останавливаемся на точке останова
* Ctrl+F4
* Expression: Clipboard.AsText<Enter>
* New Value: FDQuery1.SQL.Text<Enter>
* Переключаемся на SSMS и Ctrl+V

Ну, как забавный хак, может и пойдет. НО:
1) Function to be called, Clipboard, was eliminated by linker
2) Легче один раз добавить функционал в visualizer для TStrings и потом быстро юзать, чем мудохаться с такими кунштюками. Да и конкретно для датасета можно наворотить - с текущим SQL, значениями параметров, полей и пр.
3) Ctrl+F4 шутник :))

В целом - проктостоматология
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подсказки и ловкости / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]