Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > апостроф в SQL конструкции


Автор: DZeus 11.9.2008, 11:55
Есть SQL запрос
Код

INSERT INTO commonData.dbo.mkb (prettyName,mkbCode,id,parent,code) 
  
  VALUES ('Лихорадка О'Ньонг-Ньонг','A92.1','   440','   438','0110A921')

строка содержит апостроф, поэтому естественно вылетает ошибка 
Unclosed quotation mark after the character string

Решается путём удвоения апострофа..
Код

INSERT INTO commonData.dbo.mkb (prettyName,mkbCode,id,parent,code) 
  
  VALUES ('Лихорадка О''Ньонг-Ньонг','A92.1','   440','   438','0110A921')


Есть другие варианты?=)

Автор: Itsys 11.9.2008, 13:13
использовать не ' а `

Автор: DZeus 11.9.2008, 13:35
Цитата(Itsys @  11.9.2008,  13:13 Найти цитируемый пост)
использовать не ' а ` 


Понимаете, я осуществляю конвертацию данных и в зависимости от типа данных ячейки источника (character в данном случае) просто "заключаю" строку в апостроф-ы, при этом не хотелось бы анализировать само содержание этой ячейки, но видимо придётся осуществлять поиск апострофа и делать либо замену на ` либо добавлять ещё один к нему... smile  

Автор: Deniz 11.9.2008, 14:45
Цитата(DZeus @  11.9.2008,  14:55 Найти цитируемый пост)
Есть другие варианты?=) 
если нужен именно апостроф, то только удвоение.
В Delphi есть функция для этого, вроде QuotedStr

Автор: DZeus 11.9.2008, 16:41
Цитата(Deniz @  11.9.2008,  14:45 Найти цитируемый пост)
В Delphi есть функция для этого, вроде QuotedStr

В .Net Framework у String есть Replace(char oldValue,char NewValue)
им и воспользовался...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)