![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
insert [D7, MSSQL]
SLP © (2006-06-07 12:25:00)При вставке записи в таблицу сочетание символов "\"+возврат каретки игнорируется ( не вставляются). Тип поля varchar(200). Остальные символы вставляются корректно. И возврат каретки тоже, но без "\".
В чем м.б. причина? Настройка сервера?
Заранее благодарна за ответы.
Ega23 (2006-06-08 15:22:00) [1]
> Fishka (07.06.06 15:00) [9]
>
> Ega23 © (07.06.06 14:54) [8]
> Для этого надо выделить коды символов из переменной. А этого
> не хотелось бы. Цель: записать в таблицу переменную как
> она есть без выделения кодов символов.
Похоже, что нельзя. Всё равно придётся так делать. Как минимум - из-за апострофов.
Fishka (2006-06-08 14:58:00) [2]Ega23 © (08.06.06 14:48) [29]
Спасибо за поддержку. Может, кто из Мастеров поможет? (хотя ветка в "Начинающим", к сожалению).
Ega23 (2006-06-08 14:48:00) [3]Так. К сожалению, больше ничего по этому поводу сказать не могу (а дальше искать - времени нет. Работа, однако...)
Ega23 (2006-06-08 14:27:00) [4]Значит так. Посмотри в BOL про FORMAT_STRING, там есть и про обратный слэш.
Правда, как это "прицепить" к решению проблемы - пока не ясно...
Сейчас ещё поищу...
Fishka (2006-06-08 14:09:00) [5]Ega23 © (08.06.06 13:34) [26]
если посли слэша пробел поставить - это совсем другая история, другие символы. Мне кажется, что из отвечавших здесь никто об этом не знал.
Ega23 (2006-06-08 13:34:00) [6]
> Fishka (08.06.06 11:54) [24]
>
> MS SQL Server 2000
> SELECT '123\
> ' AS Expr1
> Пишем в Manager и видим:123.
> Аналогично в QA.
>
> Вот в этом и есть суть вопроса. Проверьте, пожалуйста.
>
а-а-а... Вон оно как... Даже и не знал такого.
Поиск по BOL о такой особенности \ пока ничего не дал.
Эксперементально нашёл, что если посли слэша пробел поставить - всё получится.
Сейчас ещё поищу...
Virgo_Style (2006-06-08 13:23:00) [7]Fishka (08.06.06 11:54) [24]
"У попа была собака..."?
Fishka (2006-06-08 11:54:00) [8]MS SQL Server 2000
SELECT '123\
' AS Expr1
Пишем в Manager и видим:123.
Аналогично в QA.
Вот в этом и есть суть вопроса. Проверьте, пожалуйста.
ANB (2006-06-07 19:31:00) [9]
> В переменной S непарные кавычки и т.п. Вывалится на ошибке.
Кто сказал такую глупость ? Что будет в S, то и запишется включая непечатные символы. И слеши двоить не надо.
Piter (2006-06-07 17:44:00) [10]Fishka (07.06.06 16:30) [19]
В переменной S непарные кавычки и т.п. Вывалится на ошибке.
потрясающая уверенность, как будто говорит разработчик этой самой MSSQL.
Ты хоть знаешь, КАК передаются параметры?
Почему бы не УБЕДИТЬСЯ, прежде чем так нагло утверждать?
P.S. Разговор, имхо, дальше вести смысла нет. Хотя в принципе автор получил ответ.
P.S.S. Вообще классная логика, типа чтобы самому не проверять, лучше сказать, что пример нерабочий, чтобы автор примера горячо стал доказывать, что пример таки рабочий и привел кучу доказательств и опытов. Ну тогда уже точно готовенькое и можно заюзать.
Бесит меня такое.
Ega23 (2006-06-07 16:52:00) [11]
> не бухгалтер случаем? похож.
Это "она". Вроде... :о)
sniknik (2006-06-07 16:35:00) [12]> ... Вывалится на ошибке.
т.е. хочеш сказать даже не пробовал???!!! (в предположительном ключе высказавание)
не бухгалтер случаем? похож.
Fishka (2006-06-07 16:30:00) [13]Ega23 © (07.06.06 16:05) [18]
Query.ParamByName('param1').AsString := s;
В переменной S непарные кавычки и т.п. Вывалится на ошибке.
Ega23 (2006-06-07 16:05:00) [14]
> Сначала надо корректно записать в поле (неважно какого типа).
>
> Можете попробовать записать предыдущие примеры и посмотреть
> результат.
> Пишем одно, а считывается другое (как описано выше).
> Может, что не то в настройках MS SQL 2000?
>
Чем тебя [12] не устраивает?
Fishka (2006-06-07 16:04:00) [15]Сначала надо корректно записать в поле (неважно какого типа).
Можете попробовать записать предыдущие примеры и посмотреть результат.
Пишем одно, а считывается другое (как описано выше).
Может, что не то в настройках MS SQL 2000?
Amoeba (2006-06-07 15:55:00) [16]
> В ней результат декодирования письма, поступившего по электронной
> почте (используется компонет TIdDecoderMIME). Т.е. кавычек
> и всего непонятного там достаточно. Надо записать его в
> таблицу MS SQL 2000 в неизменном виде.
Не лучше ли использовать Blob поле, а не VarChar для записи такогих вещей?
Piter (2006-06-07 15:54:00) [17]Fishka (07.06.06 15:43) [14]
И как в этом случае параметры помогут?
чем ТЕБЯ не устраивает [12] ?
Fishka (2006-06-07 15:43:00) [18]Piter © (07.06.06 15:26) [12]
s: string
В ней результат декодирования письма, поступившего по электронной почте (используется компонет TIdDecoderMIME). Т.е. кавычек и всего непонятного там достаточно. Надо записать его в таблицу MS SQL 2000 в неизменном виде.Причем такое сочетание встретилось в 0.03 % случаев. И письма записались с искажениями. Записывать через посимвольную кодировку не хотелось бы. Вот и вся прдыстория........
И как в этом случае параметры помогут?
Piter © (07.06.06 15:27) [13]
SLP <> Fishka
Тема создана не мной.......
Piter (2006-06-07 15:27:00) [19]Fishka (07.06.06 15:21) [11]
Название теме дано не мной
ты чем думаешь, головой? Как это не тобой?
А название темы "insert" не тобой придумано?
P.S. Во народ пошел...
Piter (2006-06-07 15:26:00) [20]Ну криво так делать чисто на SQL, используй параметры.
Что ты используешь? TQuery?
Ну дык:
var
s: string;
begin
s := 'Вообще здесь перевод строки ' + #13+#10 + 'должен быть';
Query.SQL.add('insert into tbl1 (n_name, nn_name) values (106, :param1);
Query.ParamByName('param1').AsString := s;
Query.ExecSQL;
end;
ну принцип думаю понятен. Писал с руки, наверняка ошибки есть.