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

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

Подскажите как раставить quote в sql запросе [D7, PostgreSQL]


chili ©   (2005-06-08 17:04:00) 

Подскажите как раставить quote в sql запросе?


Anatoly Podgoretsky   (2005-06-08 18:40:00) [1]

И зачем здесь format что бы помучиться?


-=XP=-   (2005-06-08 17:29:00) [2]

если ставить две кавычки insert into test values (''%s'',''%s'') на выходе получиться  insert into test values ("test1","test2")

Не двойную кавычку, а ДВЕ одинарные кавычки. Две штуки подряд.

Посмотрите, что Вы написали:

если ставить две кавычки insert into test values (''%s'',''%s'') на выходе получиться insert into test values ("test1","test2")


chili   (2005-06-08 17:27:00) [3]

>stone

Спасибо большое :)


stone   (2005-06-08 17:25:00) [4]


> chili   (08.06.05 17:24) [6]
> есть специальная функция может escapeString блин не помню
> и описания на нее не нахожу

QuotedStr


chili   (2005-06-08 17:24:00) [5]

есть специальная функция может escapeString блин не помню и описания на нее не нахожу


chili   (2005-06-08 17:23:00) [6]

если ставить две кавычки insert into test values (''%s'',''%s'') на выходе получиться
 insert into test values ("test1","test2")

но это работать не будет


-=XP=-   (2005-06-08 17:20:00) [7]

'insert into test values (%s,%s)'

'insert into test values (''%s'',''%s'')'

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


Андрей Жук   (2005-06-08 17:18:00) [8]

можешь, конечно
str := Format('insert into test values (''%s'',''%s'')',[test1,test2]);
но лучше используй bind variable


DSKalugin   (2005-06-08 17:18:00) [9]

забудь про Format,
каменный век... наследие турбопаскаля...

str := 'insert into test values ('''+test1+'',''+test2+''')';
а еще лучше с параметрами используй типа

 with tmpWriteQuery do begin
     Close;
     SQL.Clear;
     SQL.Add('insert into OTPRBALLANS (DT_OTPR, CLIENT_ID, N_DOC , debet, credit, comment)');
     SQL.Add('values (:p_dt, :p_client, :p_N_doc, :p_debet, :p_credit, :p_comment)');
     Prepare;
     ParamByName('p_dt').AsDate:=oDate;
     ParamByName('p_client').AsInteger:=oClient;
     ParamByName('p_N_doc').AsInteger:=oNo;
     ParamByName('p_debet').AsFloat:=oDeb;
     ParamByName('p_credit').AsFloat:=oCred;
     ParamByName('p_comment').AsString:=oComm;
     ExecQuery;
   end;


chili   (2005-06-08 17:08:00) [10]

Я знаю что должнать быть специальная функция в Delphi, но я не помню как она называеться..

точнее надо что бы из:

 str := Format('insert into test values (%s,%s)',[test1,test2]);
получаеться:
 insert into test values (test1,test2)

а нужно:
 insert into test values ('test1','test'2)


Наверх

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