Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с кавычками  [new]
limanski
Member

Откуда:
Сообщений: 25
Люди помогите
В таблице есть поле типа Text в котором много значений, среди которых есть такие

%@01@18264~01~%%@02@Database backed up: Database: , creation date(time): 2010/07/13(20:14:11), pages dumped: 28771, first LSN: 696:23:1, last LSN: 696:25:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'\\xxx'}). ~02~%

Мне нужно присвоить значение этого поля переменной, а дальше работать с ней, но у меня возникла проблема с кавычками.

Что делать?
12 ноя 10, 17:27    [9769024]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Проблема с кавычками - это такое сообщение об ошибке?
12 ноя 10, 17:28    [9769034]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
limanski
Member

Откуда:
Сообщений: 25
Сообщение об ошибке следующее

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '\'.
12 ноя 10, 17:29    [9769040]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
limanski
Сообщение об ошибке следующее

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '\'.
Ваш код угадать надо?
12 ноя 10, 17:30    [9769046]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Glory
Member

Откуда:
Сообщений: 104751
limanski
Сообщение об ошибке следующее

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '\'.

Это вы неправильный синтаксис написали
12 ноя 10, 17:30    [9769049]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
limanski
Member

Откуда:
Сообщений: 25
код простой
declare @text

select @text = discr
from table

Проблема в том, что значение данного поля уже содержит кавычки
12 ноя 10, 17:34    [9769081]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
limanski
код простой
declare @text

select @text = discr
from table

Проблема в том, что значение данного поля уже содержит кавычки
Проблема в том, что вы не указали тип данных у переменной при ее объявлении.
12 ноя 10, 17:35    [9769088]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Glory
Member

Откуда:
Сообщений: 104751
limanski
код простой
declare @text

select @text = discr
from table

Проблема в том, что значение данного поля уже содержит кавычки

И где здесь
Msg 102, Level 15, State 1, Line 4
12 ноя 10, 17:36    [9769091]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31987
limanski
код простой
declare @text

select @text = discr
from table
Не будет при выполнении такого кода ошибки с номером 102

Будут другие:
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'select'.
Msg 137, Level 15, State 1, Line 3
Must declare the scalar variable "@text".

Не надо обманывать.
12 ноя 10, 17:38    [9769107]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Юлик
Member

Откуда:
Сообщений: 16
Читал темы ,но не нашел такое.ERP система на базе MS SQL server 2008 (sql в качестве выборки и запросов и visual foxpro 9 в качестве синтаксиса)
Есть мнимое поле(его нет в БД) ,куда вводится физически текст,переменная ,скажем,m.vvod, которой присваивается этот вводимый текст , текст любой..(т.е это может быть и В'ffsd'sss' и Ass'ded'd'w' и просто АНППА),предположим ввели В'afsd'sss'
далее при нажатии кнопки срабатывает апдейт строкового поля базы и происходит казус.
[update abc set comment =']+m.vvod+[']
Даже если добавить еще один апостроф то до 1-й кав_чки всё нормально,а после
[update abc set comment =']+m.vvod+['']
,ругается на afsd, т.е как бы конец текста строковой переменной.
Что можно сделать? Задача следующая была,сделать подобие аськи(оно то работает но не учли апостроф и выдало ошибку,сейчас пытаюсь устранить),в нижнее поле набирается любой текст,в верхнем мемо он отображается. SET QUOTED_IDENTIFIER отпадает так как администратор будет проверять код и вернет назад,нужно обойтись каким то др.способом.
19 май 11, 09:08    [10675784]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Юлик
Читал темы ,но не нашел такое.ERP система на базе MS SQL server 2008 (sql в качестве выборки и запросов и visual foxpro 9 в качестве синтаксиса)
Есть мнимое поле(его нет в БД) ,куда вводится физически текст,переменная ,скажем,m.vvod, которой присваивается этот вводимый текст , текст любой..(т.е это может быть и В'ffsd'sss' и Ass'ded'd'w' и просто АНППА),предположим ввели В'afsd'sss'
далее при нажатии кнопки срабатывает апдейт строкового поля базы и происходит казус.
[update abc set comment =']+m.vvod+[']
Даже если добавить еще один апостроф то до 1-й кав_чки всё нормально,а после
[update abc set comment =']+m.vvod+['']
,ругается на afsd, т.е как бы конец текста строковой переменной.
Что можно сделать? Задача следующая была,сделать подобие аськи(оно то работает но не учли апостроф и выдало ошибку,сейчас пытаюсь устранить),в нижнее поле набирается любой текст,в верхнем мемо он отображается. SET QUOTED_IDENTIFIER отпадает так как администратор будет проверять код и вернет назад,нужно обойтись каким то др.способом.
А заменить в переменной m.vvod одинарные кавычки на двойные нельзя?
19 май 11, 09:23    [10675846]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Юлик
Member

Откуда:
Сообщений: 16
Владимир СА
Юлик
Читал темы ,но не нашел такое.ERP система на базе MS SQL server 2008 (sql в качестве выборки и запросов и visual foxpro 9 в качестве синтаксиса)
Есть мнимое поле(его нет в БД) ,куда вводится физически текст,переменная ,скажем,m.vvod, которой присваивается этот вводимый текст , текст любой..(т.е это может быть и В'ffsd'sss' и Ass'ded'd'w' и просто АНППА),предположим ввели В'afsd'sss'
далее при нажатии кнопки срабатывает апдейт строкового поля базы и происходит казус.
[update abc set comment =']+m.vvod+[']
Даже если добавить еще один апостроф то до 1-й кав_чки всё нормально,а после
[update abc set comment =']+m.vvod+['']
,ругается на afsd, т.е как бы конец текста строковой переменной.
Что можно сделать? Задача следующая была,сделать подобие аськи(оно то работает но не учли апостроф и выдало ошибку,сейчас пытаюсь устранить),в нижнее поле набирается любой текст,в верхнем мемо он отображается. SET QUOTED_IDENTIFIER отпадает так как администратор будет проверять код и вернет назад,нужно обойтись каким то др.способом.
А заменить в переменной m.vvod одинарные кавычки на двойные нельзя?

каким образом? Ві имеете ввиду что если пользователь набрал В'afsd'sss' то на выходе и сам текст преобразится в В"afsd"sss",т.е типа заменитб одно на второе ?(если да,незнаю что пользователи скажут,но вариант) или Вы имеете ввиду чтобы как то вычленять текст от одной одинарной кавычки до другой и ставить еще одну кавычку одинарную а потом ставить как бы "+" и уже выбирать текст от этой второй кавычки до 3-ей чтобы получилась конкатенция и запрос правильно всё слил в одно(т.е если В'ffsd'sss' сначала берем В' ставим один.кавычку потом уже берем +1 символ как начало фрагмента (f) и от него до след.кавычки..т.е фрагмент ffsd' далее ставим еще кавычку и производи соединение первой части со второй плюсом и т.д) ?
19 май 11, 09:35    [10675880]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31987
Юлик
каким образом? Ві имеете ввиду что если пользователь набрал В'afsd'sss' то на выходе и сам текст преобразится в В"afsd"sss",т.е типа заменитб одно на второе ?
Да.

Юлик
(если да,незнаю что пользователи скажут,но вариант)
Пользователи то как это заметят???
19 май 11, 09:48    [10675941]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
связка VFP90 - MSSQL
Вы на клиенте VFP90 имеете переменную m.vvod. Как вы с ней работаете это на фоум foxpro.
Ясно одно, если вы хотите на MSSQL в поле внести кавычку ('), то вы ее заменяете на ('') две одинарные кавычки.
declare @tb1 table (value varchar(max))
insert into @tb1 (value) values ('В''afsd''sss''')

select value from @tb1
Результат: В'afsd'sss'
Теперь как вам получить в VFP90 эти кавычки, то это на их форум...
19 май 11, 09:52    [10675959]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
В VFP90
m.vvod = "B'ffsd'sss'"
?m.vvod
?strtran(m.vvod,"'","''")
19 май 11, 10:01    [10675995]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кавычками  [new]
Zmej
Member

Откуда:
Сообщений: 32
Юлик
далее при нажатии кнопки срабатывает апдейт строкового поля базы и происходит казус.
[update abc set comment =']+m.vvod+[']
Даже если добавить еще один апостроф то до 1-й кав_чки всё нормально,а после
[update abc set comment =']+m.vvod+['']
,ругается на afsd, т.е как бы конец текста строковой переменной.

дабы не иметь проблем с каычками, датами и т.д. на SQL, в VFP надо писать так:
[update abc set comment =?m.vvod']
19 май 11, 18:50    [10680567]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить