Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

insert   Найти похожие ветки 

 
SLP ©   (2006-06-07 12:25) [0]

При вставке записи в таблицу сочетание символов "\"+возврат каретки игнорируется  ( не вставляются). Тип поля varchar(200). Остальные символы вставляются корректно. И возврат каретки тоже, но без "\".  
В чем м.б. причина? Настройка сервера?
Заранее благодарна за ответы.


 
Johnmen ©   (2006-06-07 12:46) [1]

Всё вставляется, если правильно вставлять. Кстати, как ты это делаешь?


 
SLP ©   (2006-06-07 12:53) [2]

у меня не вставляет.
Привожу упрощенный вариант в QA:
insert  into abl1 (n_name, nn_name) values (105,"\") - вставляет
но

insert  into tbl1 (n_name, nn_name) values (106,"\
") - ничего не вставляет!!!


 
Johnmen ©   (2006-06-07 13:08) [3]

Причём тут Дельфи?


 
ЮЮ ©   (2006-06-07 13:44) [4]

и где ты здесь видишь символ "возврат каретки"? :)

insert  into tbl1 (n_name, nn_name) values (106,:val)

Parameters.ParamByName("Val").Value := "\"#13#10


 
Fishka   (2006-06-07 14:28) [5]

Johnmen ©   (07.06.06 13:08) [3]
Дельфи ни при чем.

Допустим, имеется переменная, которую надо занести в поле БД. Какие символы есть в переменной - неизвестно.

insert  into tbl1 (n_name, nn_name) values (106,"\
123")

В результате в поле будет: только 123
А нужно, чтобы было
\
123

Что делать? Может, дело в настройках MS SQL?


 
saxon   (2006-06-07 14:29) [6]

insert  into tbl1 (n_name, nn_name) values (106,"\\
123")


 
Fishka   (2006-06-07 14:44) [7]

saxon   (07.06.06 14:29) [6]
В результате в поле будет: только \123
А мне надо: \\
123
Изменять переменную не хотелось бы. Ее надо записать как была.


 
Ega23 ©   (2006-06-07 14:54) [8]

insert  into tbl1 (n_name, nn_name) values (106,"\"+char(13)+"123")


 
Fishka   (2006-06-07 15:00) [9]

Ega23 ©   (07.06.06 14:54) [8]
Для этого надо выделить коды символов из переменной. А этого не хотелось бы. Цель: записать в таблицу переменную как она есть без выделения кодов символов.


 
McSimm ©   (2006-06-07 15:05) [10]


> Fishka

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


 
Fishka   (2006-06-07 15:21) [11]

Обсуждать модерирование не имею права, Вы правы.
Название теме дано не мной.

А вопрос остается. Суть которого в том, что не все символы (имеющие ascii-коды) записываются в поле таблицы. Пример приведен выше.
Решения я не знаю, если не выделять из переменной коды символов (ord на Дельфи).


 
Piter ©   (2006-06-07 15:26) [12]

Ну криво так делать чисто на 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;


ну принцип думаю понятен. Писал с руки, наверняка ошибки есть.


 
Piter ©   (2006-06-07 15:27) [13]

Fishka   (07.06.06 15:21) [11]
Название теме дано не мной


ты чем думаешь, головой? Как это не тобой?

А название темы "insert" не тобой придумано?

P.S. Во народ пошел...


 
Fishka   (2006-06-07 15:43) [14]

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:54) [15]

Fishka   (07.06.06 15:43) [14]
И как в этом случае параметры помогут?


чем ТЕБЯ не устраивает [12] ?


 
Amoeba ©   (2006-06-07 15:55) [16]


> В ней результат декодирования письма, поступившего по электронной
> почте (используется компонет TIdDecoderMIME). Т.е. кавычек
> и всего непонятного там достаточно. Надо записать его в
> таблицу MS SQL 2000 в неизменном виде.

Не лучше ли использовать Blob поле, а не VarChar для записи такогих вещей?


 
Fishka   (2006-06-07 16:04) [17]

Сначала надо корректно записать в поле (неважно какого типа).
Можете попробовать записать предыдущие примеры и посмотреть результат.
Пишем одно, а считывается другое (как описано выше).
Может, что не то в настройках MS SQL 2000?


 
Ega23 ©   (2006-06-07 16:05) [18]


> Сначала надо корректно записать в поле (неважно какого типа).
>
> Можете попробовать записать предыдущие примеры и посмотреть
> результат.
> Пишем одно, а считывается другое (как описано выше).
> Может, что не то в настройках MS SQL 2000?
>


Чем тебя [12] не устраивает?


 
Fishka   (2006-06-07 16:30) [19]

Ega23 ©   (07.06.06 16:05) [18]

Query.ParamByName("param1").AsString := s;
В переменной S непарные кавычки и т.п. Вывалится на ошибке.


 
sniknik ©   (2006-06-07 16:35) [20]

> ... Вывалится на ошибке.
т.е. хочеш сказать даже не пробовал???!!! (в предположительном ключе высказавание)

не бухгалтер случаем? похож.


 
Ega23 ©   (2006-06-07 16:52) [21]


> не бухгалтер случаем? похож.


Это "она". Вроде...   :о)


 
Piter ©   (2006-06-07 17:44) [22]

Fishka   (07.06.06 16:30) [19]
В переменной S непарные кавычки и т.п. Вывалится на ошибке.


потрясающая уверенность, как будто говорит разработчик этой самой MSSQL.

Ты хоть знаешь, КАК передаются параметры?

Почему бы не УБЕДИТЬСЯ, прежде чем так нагло утверждать?

P.S. Разговор, имхо, дальше вести смысла нет. Хотя в принципе автор получил ответ.

P.S.S. Вообще классная логика, типа чтобы самому не проверять, лучше сказать, что пример нерабочий, чтобы автор примера горячо стал доказывать, что пример таки рабочий и привел кучу доказательств и опытов. Ну тогда уже точно готовенькое и можно заюзать.

Бесит меня такое.


 
ANB ©   (2006-06-07 19:31) [23]


> В переменной S непарные кавычки и т.п. Вывалится на ошибке.

Кто сказал такую глупость ? Что будет в S, то и запишется включая непечатные символы. И слеши двоить не надо.


 
Fishka   (2006-06-08 11:54) [24]

MS SQL Server 2000
SELECT     "123\
" AS Expr1
Пишем в Manager и видим:123.
Аналогично в QA.

Вот в этом и есть суть вопроса. Проверьте, пожалуйста.


 
Virgo_Style ©   (2006-06-08 13:23) [25]

Fishka   (08.06.06 11:54) [24]

"У попа была собака..."?


 
Ega23 ©   (2006-06-08 13:34) [26]


> Fishka   (08.06.06 11:54) [24]
>
> MS SQL Server 2000
> SELECT     "123\
> " AS Expr1
> Пишем в Manager и видим:123.
> Аналогично в QA.
>
> Вот в этом и есть суть вопроса. Проверьте, пожалуйста.
>


а-а-а... Вон оно как... Даже и не знал такого.
Поиск по BOL о такой особенности \ пока ничего не дал.
Эксперементально нашёл, что если посли слэша пробел поставить - всё получится.
Сейчас ещё поищу...


 
Fishka   (2006-06-08 14:09) [27]

Ega23 ©   (08.06.06 13:34) [26]
если посли слэша пробел поставить - это совсем другая история, другие символы. Мне кажется, что из отвечавших здесь никто об этом не знал.


 
Ega23 ©   (2006-06-08 14:27) [28]

Значит так. Посмотри в BOL про FORMAT_STRING, там есть и про обратный слэш.
Правда, как это "прицепить" к решению проблемы - пока не ясно...
Сейчас ещё поищу...


 
Ega23 ©   (2006-06-08 14:48) [29]

Так. К сожалению, больше ничего по этому поводу сказать не могу (а дальше искать - времени нет. Работа, однако...)


 
Fishka   (2006-06-08 14:58) [30]

Ega23 ©   (08.06.06 14:48) [29]
Спасибо за поддержку. Может, кто из Мастеров поможет? (хотя ветка в "Начинающим", к сожалению).


 
Ega23 ©   (2006-06-08 15:22) [31]


> Fishka   (07.06.06 15:00) [9]
>
> Ega23 ©   (07.06.06 14:54) [8]
> Для этого надо выделить коды символов из переменной. А этого
> не хотелось бы. Цель: записать в таблицу переменную как
> она есть без выделения кодов символов.


Похоже, что нельзя. Всё равно придётся так делать. Как минимум - из-за апострофов.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.01 c
2-1149199309
Tigraman
2006-06-02 02:01
2006.06.25
Работает ли пользователь за компьютером?


1-1147788452
Neo Trinitron
2006-05-16 18:07
2006.06.25
Грамотная обработка ошибки


2-1149567037
Id
2006-06-06 08:10
2006.06.25
Загрузка из *.doc или *.rtf


1-1147975944
anton773
2006-05-18 22:12
2006.06.25
Преобразование типов


6-1140175143
Jolik
2006-02-17 14:19
2006.06.25
Проблема с бродкаст пакетами...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский