OberonCore
https://forum.oberoncore.ru/

Работа с BLOB чере ODBC
https://forum.oberoncore.ru/viewtopic.php?f=5&t=511
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Вторник, 12 Июнь, 2007 10:14 ]
Заголовок сообщения:  Работа с BLOB чере ODBC

Кто-нибудь имел опыт работы с темой?
Как читать BLOB — вроде бы понятно. А вот записать в таблицу не выходит. Функция LOAD_FILE работает только на стороне сервера, а примеры для той же Delphi используют какой-то специЯльный компонент.
Правда, ещё не пробовал представить BLOB в виде длинной строки. Не очень нравится такое, но вдруг пройдёт.

Автор:  Илья Ермаков [ Вторник, 12 Июнь, 2007 11:47 ]
Заголовок сообщения: 

Вообще говоря, в SQL должен быть способ закодировать двоичные данные текстовыми. Что-то вроде того, как это делается в CGI в адресной строке браузера - %число%число... Только в другом формате.

Автор:  Иван Кузьмицкий [ Среда, 13 Июнь, 2007 15:49 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Вообще говоря, в SQL должен быть способ закодировать двоичные данные текстовыми. Что-то вроде того, как это делается в CGI в адресной строке браузера - %число%число... Только в другом формате.

Да, там ещё нужно "экранировать" служебные символы, заменяя 0 на "\0", или что-то вроде.
Но у меня вышло всё гораздо интереснее - встроенный SQL разрешил проблему легко и просто.
Я завёл глобальную переменную
Код:
blob* : SqlDB.Blob;

далее, загрузил в неё файл
Код:
f := Files.dir.Old(Files.dir.This(path), name, TRUE);
r := f.NewReader(NIL);
blob.len := f.Length();
NEW(blob.data, blob.len);
r.ReadBytes(blob.data, 0, LEN(blob.data)-1);

и выполнил запрос к БД:
Код:
CmvsSql.Dbquery("INSERT INTO module_ver (module, date, time, content) VALUES (:CmvsCheck.moduleid, :CmvsCheck.module_ver.date, :CmvsCheck.module_ver.time, :CmvsCheck.blob)");


Добавлю, что база на MySQL 5, ODBC 3.51, Black Box 15re026.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/