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