строка с двойным апострофом

vvrz
Дата: 23.06.2009 13:57:42
Есть запрос
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.add('INSERT INTO norm_omto (nomenk,ckmtr,name,tovaroved)');
  s:=' VALUES ('''+ Trim(mater.ВнутрКод)+''' , '''+Trim(mater.КодСК_МТР)+''' , '''+Trim(mater.Наименование)+''' , '''+ Trim(mater.Товаровед)+''')';
  ADOQuery1.SQL.add(s);
  ADOQuery1.ExecSQL;

где mater:=Ole1C.CreateObject('Справочник.Материалы');

Так вот, если в строке встречается двойной апостроф, например :
автор
Кисть радиаторная 2'' 50мм

, в итоге сохраняется строка с одним апострофом: Кисть радиаторная 2' 50мм.

Как правильно записать строку?
Naf
Дата: 23.06.2009 13:59:08
использовать параметры в запросах
С уважением, Naf
vvrz
Дата: 23.06.2009 14:04:32
А можно решить проблему без использования параметров?
Naf
Дата: 23.06.2009 14:08:27
vvrz
А можно решить проблему без использования параметров?
можно, изобретайте свой велосипед
Luc
Дата: 23.06.2009 14:43:19
можно использовать ReplaceStr и заменять двойные кавычки на двойные кавычки *2 )))
Лодырь
Дата: 23.06.2009 15:08:04
Можно также использовать QuotedStr (для insert'ов я использую именно его)
procedure TForm1.FormCreate(Sender: TObject);
var Material: string;
begin
 Material := 'Кисть радиаторная 2'''' 50мм';
 ShowMessage(Material);

 Memo1.Text := 'Insert into table1 (Materials) values (' + QuotedStr(Material) + ')';
end;
В результате в таблицу будет вставлена строка:
Кисть радиаторная 2'' 50мм
RENaissance
Дата: 23.06.2009 15:10:28

Лодырь, параметры не смог осилить?

Posted via ActualForum NNTP Server 1.4

Лодырь
Дата: 23.06.2009 15:18:25
RENaissance

Лодырь, параметры не смог осилить?


Почему же? Смог. Параметры, кстати, идеально подходят, когда надо вставить число с плавающей точкой или дату.
Только автор просил вариант без параметров.
vvrz
Дата: 23.06.2009 15:22:15
Спасибо, сейчас буду пробовать QuotedStr
Naf
Дата: 23.06.2009 15:25:19
vvrz
Спасибо, сейчас буду пробовать QuotedStr

чисто интересно, параметры не используешь по религиозным убеждениям?