Страница 1 из 1

Как записать непечатные символы в строковое значение?

Добавлено: 29 июн 2007, 13:39
kmi
Понимаю, как это сделать в Delphi:

Код: Выделить всё

'abcd'#10#13'efgh'
А как такую строку записать в поле varchar или BLOB в Firebird 1.5 c помощью скрипта? (нужен именно SQL-скрипт)

Добавлено: 29 июн 2007, 14:27
Merlin
Если именно это, то просто

'abcd
efgh'

Добавлено: 29 июн 2007, 14:48
kmi
Не работает. Нужен общий случай, включая символ #0.
Для примера:

Код: Выделить всё

INSERT INTO MY_TABLE (ID, DESCRIPTION, EXTRA) VALUES (GEN_ID(GEN_ID_MY_TABLE, 1), 'Временные', '21232F297A57A5A743894A0E4A801FC3'#6#0#0#0'ReadWrite');
Тут символы #6#0#0#0 должны войти :!: в значение поля EXTRA.

Добавлено: 29 июн 2007, 16:03
kdv
blob

Добавлено: 29 июн 2007, 17:04
kmi
:D Что значит "blob"?
Если то, что данные нужно записать в BLOB-поле, то я не спорю. Вопрос именно в том, как это сделать из скрипта, командами SQL.

Добавлено: 29 июн 2007, 17:09
Merlin
Стандартными простейшими текстовыми скриптерами не прокатит. Бинарные данные заливаются через стримы, а не через тексты. Как это организовать - воля писателя интеллектуального скриптера.

Добавлено: 29 июн 2007, 17:17
kmi
Не очень верится. При занесении строки в базу символы заносятся именно посредством кодов. В этом смысле разницы между символом с кодом 0 и символом с кодом 65 нет никакой.

Добавлено: 29 июн 2007, 17:45
Merlin
А мне пох, верится тебе или нет. И программам-скриптерам тоже. Раскинь мозгой, что есть #0 в текстовой строке.

Добавлено: 29 июн 2007, 17:54
WildSery
kmi писал(а)::D Что значит "blob"?
А то и значит.
Если свой велосипед изобретать не хочешь - бери IBEScript, создавай и заливай.
В файле, котором лежит блоб, могут быть любые коды.

Добавлено: 02 июл 2007, 07:43
stix-s
kmi писал(а):Не очень верится. При занесении строки в базу символы заносятся именно посредством кодов. В этом смысле разницы между символом с кодом 0 и символом с кодом 65 нет никакой.
В одной программулине из-зя моего недогляда в поле varchar попадали различные непечатные символы (просто мусор из памяти), что приводило ко множеству глюков - ошибках в ХП и даже падению FB, так что если есть сильное желание наступить на мои грабли, пхай в varchar что хочешь :)

Добавлено: 09 авг 2007, 19:28
Esperito
2 kmi: Попробуй использовать функцию AsciiChar() из ib_udf.