|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.12.2015, 14:17 | #1 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
TSQLScript и экранировка ':'
Задача
на удаленном сервере Firebird БД(без прямого доступа) и возможности использовать какую-либо IBExpert. с помощью TSQLScript или любого другого компонента надо создать (пересоздать) ХП в которой есть ну скажем Код:
Так вот SQLScript "упорно" cчитает это "своими личными" параметрами и пытается их подставить (а их нет). КАК объяснить что это НЕ ЕГО параметр, и надо передать серверу все "КАК ЕСТЬ" P.S. Даже если попытаться задать ИМ значения Код:
программа — запись алгоритма на языке понятном транслятору
|
01.12.2015, 15:02 | #2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
execute statement там есть какой?
|
01.12.2015, 15:42 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А удвоенное :: ест?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.12.2015, 09:25 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
ларчик открывается просто.
Код:
ТЕПЕРЬ возникает вопрос как поправить генофонд? никогда ранее таким не занимался Добавить указанную выше строку paramcheck:=false; поскольку для работы TSQLScript использует свой внутренний SQLQuery( private и доступа к нему извне даже у наследника нет) но увы без этой строки. Для быстрого решения проблемы есть и другой вариант (перекрыть один метод и использовать свой SQLQuery). Этим и займусь, но хотелось бы все-таки исправить исходник.
программа — запись алгоритма на языке понятном транслятору
|
02.12.2015, 13:42 | #5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
еще раз спрошу, не проще ли #2?
|
02.12.2015, 14:08 | #6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Цитата:
теперь (после Paramcheck) если хочется выполнить блок команд, то можно и так. Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 02.12.2015 в 14:12. |
|
02.12.2015, 15:34 | #7 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
http://www.firebirdsql.org/refdocs/l...-execstat.html
Это разве не оно? |
02.12.2015, 16:05 | #8 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Да видимо оно, НО опять же ....
чтобы выполнить это "из клиента" (SQLQuery и т.п.) его надо будет "завернуть" в уже упомянутый EXECUTE BLOCK + выполнить перекодировку имеющегося файла обновлений чтобы получить нечто вроде Код:
P.S. мне тоже казалось что такое (EXECUTE STATEMENT) должно было быть, но увы моя "offline справка" про него не знала , хотя и Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 02.12.2015 в 16:12. |
|
02.12.2015, 16:08 | #9 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
А тупо создать хранимую процедуру и вызывать ее нельзя?
т.е. сначала сделаете так, а потом просто вызываете ту что создали, с параметром. |
02.12.2015, 16:14 | #10 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
к тому что зачем держать в проге ненужный код, а потом не дай бог еще его поддерживай, в то время когда все есть готовое...
|