![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите как раставить 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)