Сохранить графический файл в Blob поле Database

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Сохранить графический файл в Blob поле Database

Сообщение Developer »

Привет Всем!

Clarion 9 (9.0.10376) Windows 7 SP1 Русский

Как сохранить графический файл в Blob поле базы данных без отображения на экране прямым перемещением информации?

Есть функция FileToBLOB. При её использовании ошибка: Unresolved External FILETOBLOB@FsbBb

Как применить данную функцию для сохранения графического файла в BLOB поле базы данных?

Пожалуйста, подскажите какие практические решения существуют для данной задачи?

Необходим работающий исходник.

С Уважением, Developer, cfwdeveloper@gmail.com
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Сохранить графический файл в Blob поле Database

Сообщение Дед Пахом »

Смотрите хелп оп FILETOBLOB, там всё написано и работает - подтверждаю.
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Сохранить графический файл в Blob поле Database

Сообщение Developer »

Спасибо за отклик, help смотрел, результата нет.

Unresolved External FILETOBLOB@FsbBb

Необходим рабочий пример проекта (clw, prj, sln)
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Сохранить графический файл в Blob поле Database

Сообщение Дед Пахом »

может наоборот - пример от Вас, который не работает? clw, prj, sln...
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Сохранить графический файл в Blob поле Database

Сообщение Developer »

Вот пример:

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

  PROGRAM
     MAP
     INCLUDE('CWUTIL.INC'),ONCE 
    END

Products   FILE,DRIVER('TopSpeed'),PRE(PRO),CREATE,BINDABLE,THREAD                                                                                                                       
KeyProductNumber         KEY(PRO:ProductNumber),NOCASE,OPT,PRIMARY 
PictureImage                BLOB,BINARY                    !                    
Record                   RECORD,PRE()
ProductNumber               LONG                          
                         END
                     END                       
FileName        STRING(254)

    CODE
        Filename = 'D:\Picture.bmp'
        CREATE (Products)
        OPEN (Products)
      FILETOBLOB(Filename, PRO:PictureImage ) ! Ошибка Unresolved External FILETOBLOB@FsbBb
            ADD(Products)
            IF ERRORCODE() THEN STOP(ERROR()).
        PUT(Products) 
       CLOSE (Products) 
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Сохранить графический файл в Blob поле Database

Сообщение Дед Пахом »

надо в проекте указать _ABCLinkMode_=>1
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Сохранить графический файл в Blob поле Database

Сообщение Developer »

Дед Пахом огромное спасибо!

Ошибка Unresolved External FILETOBLOB@FsbBb решена!

Подскажи пожалуйста, где почитать об директивах компилятора в связи с данной темой?
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Сохранить графический файл в Blob поле Database

Сообщение Дед Пахом »

посмотри в хелпе #pragma, там общие сведения.
С уважением, ДП
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Сохранить графический файл в Blob поле Database

Сообщение Yufil »

Есть ещё тонкость. Дело в том, что кларионовские драйвера, как правило, не видят модификаций поля Blob. Поэтому если сохранение идёт в форме и ни одно другое поле, кроме блоба, не менялось, нажатие кнопки OK может и не сохранить запись. Record же не изменилась,и Memo-поля тоже... Поэтому если есть Блоб в записи, желательно добавить ещё поля Дата-время записи или что-то подобное.

И, кстати, много раз рассылал класс CSTR, в котором делается с полпинка.
S Cstr
....
S.LoadFromFile(filename)
S.SaveToBlob(blobfield)

и процедуру PackBlob-UnpackBlob для утрамбовки данных
Ответить