|
|
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
Вроде бы еще такой темы не было (??). Суть - неоднозначные неожиданные вещи в 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 ХЗ что еще добавить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 20:55 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
А как же FD Monitor? Для цели отладки SQL-запросов.. и даже не только отладки, а иногда, спустя месяцы/годы, когда уже не помнишь, что и делает приложение, у нас реализована такая вещь. При включении флага в конфиге, каждый SQL-запрос из АРМа дублируется в спец. окно (путём простой отсылки WM_COPYDATA, по аналогии с GExperts ). Сделано это было однажды (на уровне системной библиотеки), потом для удобства была правка: показывается SQL-запрос как есть, затем он дублируется с подстановкой bind-значений (чтобы можно было просто скопировать, вставить и выполнить без доп. телодвижений). Очень удобно. Плюс отдаём это продвинутым клиентам, чтобы они могли сами промониторить запросы от приложений с целью самостоятельно разобраться/написать свой отчёт какой-нибудь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 21:17 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
delphinotesприложение, у нас реализована такая вещь. При включении флага в конфиге, каждый SQL-запрос из АРМа дублируется в спец. окно Осталось еще добавить контроль производительности и подсказки по оптимизации запросов / БД, а в спец режиме автоматическая оптимизация БД (добавление индексов и.т.д) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 21:21 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
asviridenkov, вот я сейчас не понял, это сарказм? :) Метка времени - при желании включается. Контроль скорости prepare/describe/first fetch - реализован, этого хватает. Индексы - это уже всё-таки задача разработчика БД, нежели программиста интерфейса (даже если обе (и более) роли играет одно лицо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 21:26 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
Я использую OutputDebugString с запросами. IFDPhysCommand конвертирую в скрипт и выдаю (объявляю переменные с именами параметров нужных типов, вставку в tvp заполняю, макросы разрешаю и.т.д.). Если вдруг надо, то ставится DebugView и смотрится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 21:31 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievНапример, надо текст SQL запроса из FDQuery1.SQL.Text в режиме отладки закинуть в SSMS или куда еще. Когда я был маленьким мальчиком, я сделал в программе волшебную кнопку, по которой в любом месте и любой форме открывается примерно такое окно. Так гораздо, несравнимо удобнее - например, можно смотреть актуальные данные во временных таблицах и/или незакоммиченные текущей транзакцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 12:04 |
|
||
|
Подсказки и ловкости
|
|||
|---|---|---|---|
|
#18+
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 шутник :)) В целом - проктостоматология ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 16:24 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2039613]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 451ms |

| 0 / 0 |
