Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];
ВнизSQL.Text сохранить в файл Найти похожие ветки
← →
dymok © (2008-12-01 15:05) [0]Пробовал Query1.SQL.SaveToFile("555.sql");
Как программно сохранить текст запроса в файл, так что бы в нём вместо названий параметров типа :par1 были бы текущие значения этих параметров?
← →
Palladin © (2008-12-01 15:06) [1]никак
← →
Сергей М. © (2008-12-01 15:07) [2]СУБД какая ?
← →
Ega23 © (2008-12-01 15:09) [3]
> Как программно сохранить текст запроса в файл, так что бы
> в нём вместо названий параметров типа :par1 были бы текущие
> значения этих параметров?
>
Взять переменную типа стринг, скопировать в неё текст запроса, пройти по циклу параметров, делать каждому StringReplace, заменяя его на Value.
← →
dymok © (2008-12-01 15:20) [4]
> Сергей М. © (01.12.08 15:07) [2]
> СУБД какая ?
Субд - dbf, доступ с помощью BDE.
Цель -
недавно выяснил, что BDE поддерживает VIEWы. А если сохранять запросы в файлы, то можно таким образом как бы динамически эти Viewы делать
← →
Сергей М. © (2008-12-01 15:28) [5]
> Субд - dbf
dbf - это не СУБД.
> BDE поддерживает VIEWы
Только на уровне TStoredProc и только если СУБД их поддерживает.
В твоем же случае ни о каких StoredProc не может иди и речи.
← →
Поросенок Винни-Пух © (2008-12-01 15:31) [6]Как программно сохранить текст запроса в файл, так что бы в нём вместо названий параметров типа :par1 были бы текущие значения этих параметров?
В тексте запроса значения параметров не появляются никогда.
Это же не макросы.
На сервер они едут в соседнем вагоне с текстом запроса.
← →
dymok © (2008-12-01 15:33) [7]Не viewы а как бы viewы. Можно обращаться к файлу с текстом запроса *.sql как к таблице.
> Сергей М. © (01.12.08 15:28) [5]Только
> на уровне TStoredProc и только если СУБД их поддерживает.
> В твоем же случае ни о каких StoredProc не может иди и речи.
>
← →
Поросенок Винни-Пух © (2008-12-01 15:45) [8]...
List.add.Sql.Text;
for i := 0 to pred(Params.Count) do List.Add(....)
List.SaveToFile(...)
← →
dymok © (2008-12-01 16:26) [9]
sss:=Query1.SQL.Text;
for i:=0 to Query1.ParamCount-1 do begin
StringReplace(sss, ":"+Query1.Params[i].Name, qTimerr.Params[i].AsString, [rfReplaceAll, rfIgnoreCase]);
end;
ничего не меняет. где ошибка?
← →
dymok © (2008-12-01 17:09) [10]Оказывается надо было
sss:=StringReplace(sss, ":"+Query1.Params[i].Name, qTimerr.Params[i].AsString, [rfReplaceAll, rfIgnoreCase]);
← →
Anatoly Podgoretsky © (2008-12-01 19:17) [11]> dymok (01.12.2008 16:26:09) [9]
Меняет, но какое это отношение имеет к сохранению.
← →
Loginov Dmitry © (2008-12-01 23:15) [12]> недавно выяснил, что BDE поддерживает VIEWы.
Не знаю как правильнее это назвать, но внешние sql-файлы в BDE - самая эффективная для парадокса (соответственно и для DBase) альтернатива вложенным подзапросам (сами же вложенные подзапросы работают там просто дико медленно).
Естественно, их можно использовать и в качестве представлений без возможности какой-либо модификации данных.
> sss:=StringReplace(sss, ":"+Query1.Params[i].Name, qTimerr.Params[i].AsSt
> ring, [rfReplaceAll, rfIgnoreCase]);
еще про QuotedStr() для строковых параметров не забудь!
← →
Тын-Дын © (2008-12-01 23:52) [13]
> Palladin © (01.12.08 15:06) [1]
> никак
> dymok © (01.12.08 15:05)
Разберись, как работает SQL-monitor и получай запросы в уже готовом виде.
← →
dymok © (2008-12-02 09:39) [14]
> Loginov Dmitry © (01.12.08 23:15) [12]
> еще про QuotedStr() для строковых параметров не забудь!
QuotedStr() - удобная вещь, а я раньше в таких случаях добавлял по 4 кавычки: """"+строка+""""
Спасибо, Дим!
Всем спасибо!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c