The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Выборка картинок из MS SQL Server в FreeBSD с помощью Perl"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Выборка картинок из MS SQL Server в FreeBSD с помощью Perl" 
Сообщение от AlekseyD emailИскать по авторуВ закладки(ok) on 16-Авг-05, 17:17  (MSK)
Здравствуйте!

Не подскажете как можно обойти эту проблему?

Суть проблемы. В ОС FreeBSD есть скритп кот. читает из базы данных поле в кот. находиться картинка и сохраняет эту картинку в файл сам скрипт

#!/usr/local/bin/perl
use DBI;

$dbh=DBI->connect('DBI:Sybase:server=192.168.200.99:1433;database=DATABASE1','user','pass');

$strSQL="select field_bmp from table";

#$dbh->{LongReadLen}=3145728;
$sth=$dbh->prepare($strSQL); $sth->execute(); $count=1;
$sth->bind_col(1,\$Data);
while (@data=$sth->fetchrow_array()) {
  open (NF, ">$count.bmp");
  binmode NF;
  print NF $Data;
  close (NF);
               $count=$count+1;
}

Так вот этот скрипт почему то сохраняет файл 1.bmp.... в текстовом формате, а не в двоичном. Не подскажете что может быть? В windows все нормально работает сохраняет файл в нормальном формате а в FreeBSD не хочет.

Да и еще когда раскоментирую эту строчку $dbh->{LongReadLen}=3145728; Компилятор ругаеться "Setting of CS_OPT_TEXTSIZE failed ..."

FreeBSD 5.4 DBI + DBD_Sybase, и еще конект происходит с помощью FreeTDS

Буду очень признателен за ответ.

Спасибо.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Выборка картинок из MS SQL Server в FreeBSD с помощью Perl" 
Сообщение от co6aka Искать по авторуВ закладки(ok) on 16-Авг-05, 17:47  (MSK)
А подробнее можно? Что значит "...В windows все нормально работает сохраняет файл в нормальном формате а в FreeBSD не хочет..."
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Выборка картинок из MS SQL Server в FreeBSD с помощью Perl" 
Сообщение от AlekseyD emailИскать по авторуВ закладки(ok) on 16-Авг-05, 18:04  (MSK)
>А подробнее можно? Что значит "...В windows все нормально работает сохраняет файл
>в нормальном формате а в FreeBSD не хочет..."

Т.е. в windows картинки в бинарном формате. А в FreeBSD в текстовом.
К примеру 42 - это в HEX, а FreeBSD не в HEX показвывает,а как 42 - сторока.

Спасибо за ответ!


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Выборка картинок из MS SQL Server в FreeBSD с помощью Perl" 
Сообщение от AlekseyD emailИскать по авторуВ закладки(ok) on 16-Авг-05, 18:01  (MSK)
>Здравствуйте!
>
>Не подскажете как можно обойти эту проблему?
>
>Суть проблемы. В ОС FreeBSD есть скритп кот. читает из базы данных
>поле в кот. находиться картинка и сохраняет эту картинку в файл
>сам скрипт
>
>#!/usr/local/bin/perl
>use DBI;
>
>$dbh=DBI->connect('DBI:Sybase:server=192.168.200.99:1433;database=DATABASE1','user','pass');
>
>$strSQL="select field_bmp from table";
>
>#$dbh->{LongReadLen}=3145728;
>$sth=$dbh->prepare($strSQL); $sth->execute(); $count=1;
>$sth->bind_col(1,\$Data);
>while (@data=$sth->fetchrow_array()) {
>   open (NF, ">$count.bmp");
>   binmode NF;
>   print NF $Data;
>   close (NF);
>            
>   $count=$count+1;
>}
>
>
>Так вот этот скрипт почему то сохраняет файл 1.bmp.... в текстовом формате,
>а не в двоичном. Не подскажете что может быть? В windows
>все нормально работает сохраняет файл в нормальном формате а в FreeBSD
>не хочет.
>
>Да и еще когда раскоментирую эту строчку $dbh->{LongReadLen}=3145728; Компилятор ругаеться "Setting of CS_OPT_TEXTSIZE failed ..."
>
>FreeBSD 5.4 DBI + DBD_Sybase, и еще конект происходит с помощью FreeTDS
>
>
>Буду очень признателен за ответ.
>
>Спасибо.

Фух все разобрался. Нужно было перевести Sybase в бинарный режим, после строчки $sth=$dbh->prepare($strSQL); Самое главное до execute() написать

$dbh->{syb_binary_images}=1; Вот и все :)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру