Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизКак на 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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.032 c