Здравствуйте.
CW6.1 ABC
Имею в BLOB - полях (ORACLE) TIF - документы, одно- и многостраничные.
Для отображения использую:
LOC:Handle USHORT
LOC:Op CSTRING(20)
LOC:File CSTRING(256)
LOC:Path CSTRING(256)
LOC:Param CSTRING(256)
LOC:Show SHORT
TempFileName cstring('c:\data\temp.tif')
code
IF BLOBToFile(O_Doc:FILE_DOC, TempFileName)
MESSAGE(' was not copied - ERRORCODE: ' & ERRORCODE())
else
loc:Handle = 0{PROP:Handle}
loc:Op = ''
loc:File = ''
loc:Param = clip(TempFileName)
loc:Path = ''
loc:Show = 0
RetVal# = ShellExecute(loc:Handle,loc:Op,loc:Param,loc:File,loc:Path,loc:Show)
END
По расширению tif на компе цепляется ACDSee 6.0
Проблема: после проделанного ACDSee отказывается показывать многостраничный документ далее первой страницы, хотя и сообщает, что их несколько.
Примечание: в BLOB - документы корректные (проверено другими программами по аналогичной схеме), ACDSee показвает многостраничные документы, ессно, тоже корректно.
Вопрос: что может быть? Мож, BlobToFile ломается, или чо?
Спасибо.
Чтение из BLOB многостраничного TIF
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Re: Чтение из BLOB многостраничного TIF
1. А как ShellExecute объявлена? Вообще-то, первый и последний параметры не Short, a Long.SSTA писал(а):Здравствуйте.
CW6.1 ABC
Имею в BLOB - полях (ORACLE) TIF - документы, одно- и многостраничные.
Для отображения использую:
LOC:Handle USHORT
LOC:Op CSTRING(20)
LOC:File CSTRING(256)
LOC:Path CSTRING(256)
LOC:Param CSTRING(256)
LOC:Show SHORT
TempFileName cstring('c:\data\temp.tif')
code
IF BLOBToFile(O_Doc:FILE_DOC, TempFileName)
MESSAGE(' was not copied - ERRORCODE: ' & ERRORCODE())
else
loc:Handle = 0{PROP:Handle}
loc:Op = ''
loc:File = ''
loc:Param = clip(TempFileName)
loc:Path = ''
loc:Show = 0
RetVal# = ShellExecute(loc:Handle,loc:Op,loc:Param,loc:File,loc:Path,loc:Show)
END
По расширению tif на компе цепляется ACDSee 6.0
Проблема: после проделанного ACDSee отказывается показывать многостраничный документ далее первой страницы, хотя и сообщает, что их несколько.
Примечание: в BLOB - документы корректные (проверено другими программами по аналогичной схеме), ACDSee показвает многостраничные документы, ессно, тоже корректно.
Вопрос: что может быть? Мож, BlobToFile ломается, или чо?
Спасибо.
ShellExecute(UNSIGNED,*CSTRING,*CSTRING,*CSTRING,*CSTRING,SIGNED),UNSIGNED,PASCAL,RAW, |
NAME('ShellExecuteA')
Unsihned и Signed в 32-битных приложениях - это Long. А первый параметр вполне достаточно указать как 0. Ну и Loc:Op='Open' не помешает.
2. Посмотри на http://www.clarionFreeImage.com, там есть халявные шаблоны, может быть, помогут обойтись без ACDSee
3. Когда-то в прошлой жизни высвечивал Multipage Tiff через Kodak OCX, прилагающийся к Windows 98.
Можно найти прогу на http://www.tacis-dipol.ru/fil/showImg.zip и http://www.tacis-dipol.ru/fil/kodak.zip (если нет под рукой Win98)..
Ситуация проясняется:
дело в том, что в oracle поле, хранящее tif - LONGRAW и создавалось невесть кем, невесть когда. При импорте описания таблицы в DCT тип поля оказался BLOB, а не как описано в соответсвиях типов данных STRING+GROUP+SHORT. BlobToFile на действительно BLOB Oracle работает прекрасно.
Вопрос тогда немного меняется: как вытянуть tif из LONGRAW, какое должно быть его описание его в dct для TIF произвольного размера?
дело в том, что в oracle поле, хранящее tif - LONGRAW и создавалось невесть кем, невесть когда. При импорте описания таблицы в DCT тип поля оказался BLOB, а не как описано в соответсвиях типов данных STRING+GROUP+SHORT. BlobToFile на действительно BLOB Oracle работает прекрасно.
Вопрос тогда немного меняется: как вытянуть tif из LONGRAW, какое должно быть его описание его в dct для TIF произвольного размера?
C уважением, Александр Т.
ну а не пробовал поменять тип данных BLOB на требуемый в DCT для этого поля?SSTA писал(а):Ситуация проясняется:
дело в том, что в oracle поле, хранящее tif - LONGRAW и создавалось невесть кем, невесть когда. При импорте описания таблицы в DCT тип поля оказался BLOB, а не как описано в соответсвиях типов данных STRING+GROUP+SHORT. BlobToFile на действительно BLOB Oracle работает прекрасно.
Вопрос тогда немного меняется: как вытянуть tif из LONGRAW, какое должно быть его описание его в dct для TIF произвольного размера?
если ничего не получиться читай как через API подымаются данные из безразмерных полей, SqlDescribe, SqlGetData