Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

никак


Наверх

Титульная страница Поиск, карта сайта Написать письмо