Вниз
Скачать: CL | DM;

Как получить SQL текст с подставленными параметрами?   Найти похожие ветки 

 
Vlad Oshin ©   (2007-09-06 13:59) [0]

кроме как руками?

     id:=1;
     ADOquery1.SQL.Add("select * from tbHistory where id=:p1");
     ADOquery1.Parameters.ParamByName("p1").Value := id;
     log("qqqqqqqqqqqqqqqqqqqqqqqqqqqq");
     log(ADOquery1.SQL.Text);
     log("qqqqqqqqqqqqqqqqqqqqqqqqqqqq");

---------------
имеем в логе:
qqqqqqqqqqqqqqqqqqqqqqqqqqqq
select * from tbHistory where id=:p1
qqqqqqqqqqqqqqqqqqqqqqqqqqqq

а надо:
select * from tbHistory where id=1


 
Desdechado ©   (2007-09-06 14:00) [1]

Значения параметров улетаютна сервер отдельным механизмом, не в контексте SQL-запроса. Поэтому к тексту как к таковому их не отнесешь.


 
Ega23 ©   (2007-09-06 14:09) [2]

В TRxQuery было свойство RealSQL : TStrings

В адошном такого нет.
Да ты посмотри профайлером, в каком виде запрос на сервер летит, всё сразу ясно станет...  :)


 
Vlad Oshin ©   (2007-09-06 14:15) [3]


> Ega23 ©   (06.09.07 14:09) [2]

да это все понятно,
да и легче функцию написать
stringreplace от ADOquery1.SQL.Text по :p1 и т.п.
или log() по всем параметрам

но муторно,
то, на что не хочешь тратить время - как раз больше всего времени и занимает


 
Palladin ©   (2007-09-06 14:16) [4]


> Vlad Oshin ©

А зачем тебе это?
Телепатор подсказывает для вывода в лог. Если телепатор прав, то выводи отдельно SQL с параметрами и отдельно значения самих параметров в читаемом виде.


 
Anatoly Podgoretsky ©   (2007-09-06 14:20) [5]

> Vlad Oshin  (06.09.2007 13:59:00)  [0]

Никак, кроме как руками
Значения параметров никогда в запрос не входят.


 
Anatoly Podgoretsky ©   (2007-09-06 14:21) [6]

> Ega23  (06.09.2007 14:09:02)  [2]

RealSQL для параметров будет примерно такой select * from tbHistory where id=?
Это там наверно из-за поддержки макросов.


 
Anatoly Podgoretsky ©   (2007-09-06 14:27) [7]

> Vlad Oshin  (06.09.2007 14:15:03)  [3]

Ну какая муторность, когда есть массив и текст запроса, слева направо меняем, единственная сложность определить окончание имени параметра.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
2-1188565851
writebuf(nil);
2007-08-31 17:10
2007.09.30
Проверить ASCII строку


2-1189019937
malyar
2007-09-05 23:18
2007.09.30
масивы


2-1188900056
Service
2007-09-04 14:00
2007.09.30
Service


2-1188816975
Layner
2007-09-03 14:56
2007.09.30
Определить уникальный номер Windows Registered to (2000-XP-Vista)


2-1188891080
6aM6y4a
2007-09-04 11:31
2007.09.30
Дизассемблер




   Наверх