Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Как на SQL записать код символа вместо его явного указания?   Найти похожие ветки 

 
Shama_n ©   (2004-07-14 15:23) [0]

Нужно организовать функцию сохранения таблицы в SQL файл но в некоторых записях присутствуют запрещенные символы. Естественно после выполнения такого SQL запроса вылетит ошибка. Есть методы замещения таких символов их кодом?


 
Reindeer Moss Eater ©   (2004-07-14 15:26) [1]

Интересно, что такое "символ сам по себе" и "его код"?

И что будет если первый заменить вторым.
И что такое SQL файл.
Интересна!


 
Shama_n ©   (2004-07-14 15:31) [2]

Reindeer Moss Eater>
Символ=буква
насчет кода- http://www.belgorod.fio.ru/web_master/scool32/page16.htm
SQL файл это обычный текстовый файл с набором SQL инструкций


 
bushmen ©   (2004-07-14 15:37) [3]

> функцию сохранения таблицы

Это как? Я всегда думал, что функция что-либо считает. И потом, у таблицы есть структура и в ней могут быть данные. Что тебе надо сохранить? И какие там запрещенные символы? Каким ветром их туда занесло? :)


 
Reindeer Moss Eater ©   (2004-07-14 15:39) [4]

Символ=буква

Я бы сказал, что как раз наоборот. Буква - это символ.
А символ - необязательно буква.

Если есть понятие запрещенных символов для сервера, то махинации со вставкой "не символов", а "их кодов" ничего не дадут. Ибо это одно и то же.


 
Соловьев ©   (2004-07-14 15:41) [5]


> присутствуют запрещенные символы

приведите пример


 
Reindeer Moss Eater ©   (2004-07-14 15:47) [6]

Есть методы замещения таких символов их кодом

Конечно есть.

Когда символ (даже разрешенный :) ) вставляется в поле БД, то втсавляется байт, значение которого равно коду этого символа, а вовсе не "геометрические очертания печатного символа" :)


 
Shama_n ©   (2004-07-14 15:48) [7]

Существует таблица её структуру и данные нужно сохранить в файл
Создаем обычный текстовый файл c:
CREATE TABLE ... описываем структуру таблицы
INSERT INTO... заполняем её данными

В итоге получим файл который можно выполнить практически в любой программе администрирования БД. Проблемма в том что в данных может присутствовать допустим кавычка и тогда INSERT INTO вылетит с ошибкой. Если её не указывать явным образом а заменить на код то все должно пройти без ошибок. Только как заменить догнать пока не получилось


 
Reindeer Moss Eater ©   (2004-07-14 15:49) [8]

Только как заменить догнать пока не получилось

Читай [6] и оставь свои надежды.


 
bushmen ©   (2004-07-14 15:51) [9]

> в данных может присутствовать допустим кавычка

А кто сказал, что это запрещенный символ?


 
Shama_n ©   (2004-07-14 15:52) [10]

Когда символ (даже разрешенный :) ) вставляется в поле БД, то втсавляется байт, значение которого равно коду этого символа, а вовсе не "геометрические очертания печатного символа" :)
Reindeer Moss Eater> Давай без лирики. Есть конкретная ситуация и ее нужно решить а не дураком меня выставлять


 
Reindeer Moss Eater ©   (2004-07-14 15:52) [11]

Вот опять родился чел, не знающий правила удвоения кавычек.
:)
Заменитель символов буквами :)


 
Reindeer Moss Eater ©   (2004-07-14 15:53) [12]

Давай без лирики.

Давай без давай.


 
Shama_n ©   (2004-07-14 15:54) [13]

А кто сказал, что это запрещенный символ?
MySQL вылетает с ошибкой на одинарной кавычке. И суть вообще не в кавычке а в способе замещения запрещенных символов


 
Reindeer Moss Eater ©   (2004-07-14 15:56) [14]

[11]


 
Reindeer Moss Eater ©   (2004-07-14 15:57) [15]

MySQL вылетает с ошибкой на одинарной кавычке.

Но он при этом не говорит, что это ЗАПРЕЩЕННЫЙ СИМВОЛ


 
Reindeer Moss Eater ©   (2004-07-14 15:59) [16]

insert into table values("Shaman""s mistake");


 
bushmen ©   (2004-07-14 15:59) [17]

> И суть вообще не в кавычке а в способе замещения запрещенных символов

Да нету такого :) Тебе ответили в [9] и [11].
А на что спорим, что я вставлю кавычку в MySQL БЕЗ какого-либо замещения? :)))


 
bushmen ©   (2004-07-14 16:01) [18]

> Reindeer Moss Eater ©   (14.07.04 15:59) [16]

Ты немного поторопился - вопрос по MySQL


 
Reindeer Moss Eater ©   (2004-07-14 16:03) [19]

А что там удвоение не действует?


 
Shama_n ©   (2004-07-14 16:04) [20]

Но он при этом не говорит, что это ЗАПРЕЩЕННЫЙ СИМВОЛ
После замещения одинарных кавычек допустим пробелом SQL запрос выполняется


 
Reindeer Moss Eater ©   (2004-07-14 16:05) [21]

Но он при этом не говорит, что это ЗАПРЕЩЕННЫЙ СИМВОЛ
После замещения одинарных кавычек допустим пробелом SQL запрос выполняется


Это не говорит, что символ кавычки ЗАПРЕЩЕННЫЙ.


 
bushmen ©   (2004-07-14 16:11) [22]

> После замещения одинарных кавычек допустим пробелом SQL запрос выполняется

Ты в чем проверяешь? В Delphi или командной строке?


 
bushmen ©   (2004-07-14 16:13) [23]

> Reindeer Moss Eater ©   (14.07.04 16:03) [19]

Я о другом хотел сказать. В MySQL в качестве ограничителей текстовой строки идут кавычки, а не апострафы. Поэтому, если он хочет запускать свой файл в командной строке, то надо писать кавычки.


 
Reindeer Moss Eater ©   (2004-07-14 16:17) [24]

У него кавычки или апострофы внутри строки.
И когда он их заменяет пробелами, все работает.

Если бы он заменял ограничители строки пробелами и все работало, то блин ..... Впрочем я не знаю MySQL вообще .

А мой пример был на то, что чел поймет, что внутри строки свои кавычки или апострофы (что там разделителями выступает) надо удваивать.


 
Reindeer Moss Eater ©   (2004-07-14 16:18) [25]

Но похоже он так и не понял этого.


 
bushmen ©   (2004-07-14 16:26) [26]

Значит, не судьба :)))


 
Shama_n ©   (2004-07-14 16:32) [27]

Да знаю я про удвоение. Хотел найти универсальный способ замещения любых служебних символов но похоже такого способа нет.
Ты в чем проверяешь? В Delphi или командной строке?
просто сформированый файл в DB Manager Pro запускаю на выполнение


 
Nikolay M. ©   (2004-07-14 16:47) [28]

Во-первых, всегда можно создать блоб-поле и посмотреть дамп в том виде, каким его выдаст mysqldump - узнаешь много полезного. А, во-вторых, chr(код_символа) пока еще никто не отменял.


 
bushmen ©   (2004-07-14 16:50) [29]

> chr(код_символа)

Боюсь, что для самого сервера это все-равно будет исходный символ


 
Nikolay M. ©   (2004-07-14 16:52) [30]


> bushmen ©   (14.07.04 16:50) [29]
> > chr(код_символа)
>
> Боюсь, что для самого сервера это все-равно будет исходный
> символ

Дык а автору что нужно?
INSERT INTO tab (f)
VALUES (chr(10))
Ы?


 
Shama_n ©   (2004-07-14 16:55) [31]

Если есть понятие запрещенных символов для сервера, то махинации со вставкой "не символов", а "их кодов" ничего не дадут. Ибо это одно и то же
Понятия запрещенных символов для сервера насколько я знаю не существует. Я имеюю ввиду символы которые могут совпадать с символами SQL запроса.
Вообще вопрос возник исходя из мыслей о том что есть возможность передать SQL интерпритатору команду передающую непосредственно КОД символа чтоб или допустим значение всей строки в двоичном формате но похоже обычным строковым SQL запросом это сделать невозможно, только если через параметры. Только вот параметры в моем случае негде указывать.
Будем значит по старинке юзать удвоение и прочие извращения
---Закрываем ветку---


 
Reindeer Moss Eater ©   (2004-07-14 16:56) [32]

Ы?

Если бы автор не твердил упорно о замене запрещенных символов, то этого решения никто бы не отвергал.


 
Reindeer Moss Eater ©   (2004-07-14 16:58) [33]

Если есть понятие запрещенных символов ....
Просто надо приводить точные тексты сообщений об ошибках, а не свои вольные интрепретации этих сообщений.


 
Shama_n ©   (2004-07-14 16:59) [34]

chr(код_символа)
Именно это я и спрашивал
Боюсь, что для самого сервера это все-равно будет исходный символ
Возможно...


 
Nikolay M. ©   (2004-07-14 17:04) [35]


> Reindeer Moss Eater ©   (14.07.04 16:56) [32]
> Ы?
>
> Если бы автор не твердил упорно о замене запрещенных символов,
> то этого решения никто бы не отвергал.

Бред какой-то, имхо. Даже перечитал еще раз ветку, не фига не понял :(
Если не трудно, что такое "запрещенные" символы, если кто-нибудь понял?


 
Shama_n ©   (2004-07-14 17:18) [36]

Бред какой-то, имхо. Даже перечитал еще раз ветку, не фига не понял :(
Если не трудно, что такое "запрещенные" символы, если кто-нибудь понял?

Да я уже сам запутался :)



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

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.044 c
1-1090838969
Фагот
2004-07-26 14:49
2004.08.08
Планировщик


1-1090427666
Василий
2004-07-21 20:34
2004.08.08
Структура файлов?


1-1090827296
IceBeerg
2004-07-26 11:34
2004.08.08
Как работать с автономными файлами?


14-1090415459
Piter
2004-07-21 17:10
2004.08.08
Эксперименты с русским языком в английской windows


4-1088340190
Agent[007]
2004-06-27 16:43
2004.08.08
Пуск