Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 14:44   #11
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
по идее как-то так должно быть (в общем смысле)
Код:
if Column.Field.FieldName = 'Изображение' then
begin 
  TBlobField(Query.FieldByName('Изображение')).SaveToFile('c:\Temp\img.jpg');
  ShellExecute(0, 'open', PChar('c:\Temp\img.jpg'), nil, nil, SW_NORMAL);
end;
Файл записывается на диск, только пишет, только программа, которая открывает его, выдает сообщение "Формат файла не определен"
Учиться, учиться и еще раз учиться!
Eugene_Stoun вне форума Ответить с цитированием
Старый 09.07.2013, 16:36   #12
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
только программа, которая открывает его, выдает сообщение "Формат файла не определен"
а обычным двойным щелчком удается его открыть?
и какой формат файла хранится в БД? может там вовсе и не jpg, а что-то другое
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.07.2013, 16:39   #13
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
По умолчанию

Файлы у меня хранятся в самой БД, формат их .tif, просто вместо jpg я прописываю tif, файл создается в папке с программой но не открывается, пишет формат файла не определен, хотя файл имеет вполне хороший размер, не могу разобраться в чем проблема, я уже пытался использовать потоки, но тоже самое происходит Даже двойным щелчком тоже самое сообщение, что формат файла не определен
Учиться, учиться и еще раз учиться!

Последний раз редактировалось Eugene_Stoun; 09.07.2013 в 16:41.
Eugene_Stoun вне форума Ответить с цитированием
Старый 09.07.2013, 17:07   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А если файл открыть в HEX редакторе будет там TIFF сигнатура?
Может ты их неправильно в БД засовываешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2013, 17:12   #15
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Eugene_Stoun Посмотреть сообщение
Файл записывается на диск, только пишет, только программа, которая открывает его, выдает сообщение "Формат файла не определен"
И правильно, ибо нефиг. Читая тему, всё удивлялся использованию ShellExecute, думая что это какой-то незнакомый мне способ.

Если задачу нужно все же решить, советую перестать играть в бирюльки, засучить рукава и вдумчиво гуглить по теме хранения объектов OLE в таблицах Access. Там сделано немного нетривиально, насколько знаю.

Самому пользоваться не приходилось, поэтому точнее не подскажу. А всех советчиков-быдлокодеров из этой темы -- на кол!
Vapaamies вне форума Ответить с цитированием
Старый 09.07.2013, 17:24   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Eugene_Stoun
В нете такое рекомендуют: http://devdelphi.ru/?p=51
Цитата:
Читая тему, всё удивлялся использованию ShellExecute
Ну и чему же?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2013, 18:47   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Stilet, это не прокатит. Записанная средствами ACCESS-а картинка в OLE-поле отличается от двоичного представления того же jpg. Нужно плясать в сторону olecontainer. Вот если бы из дельфей записали, тогда можно. Но тогда ACCESS воспринимал бы как просто двоичное BLOB-поле и ни каких тебе jpg
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.07.2013, 20:05   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Записанная средствами ACCESS-а картинка
Я что-то пропустил, или автор это подтвердил
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2013, 20:16   #19
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Stilet, в первом же сообщении:
Цитата:
Сообщение от Eugene_Stoun Посмотреть сообщение
тип этого поля OLE.
Инквизиция помнит.
Vapaamies вне форума Ответить с цитированием
Старый 09.07.2013, 22:09   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Инквизиция помнит.
Та как-то не волнует твоя религия. OLE ни о чем не говорит. Как автор туда данные вбил эти три буквы никому не поведали.
И ты кстати уклонился от моего вопроса.

P.S. А пока тут не разгорелись костры экзекуторов скажу следующее.
Сделал базу на 2003-м акцессе, и проект.
Код:
unit Unit2;

interface

uses      shellapi,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids,
  Data.DB, Data.Win.ADODB;

type
  TForm2 = class(TForm)
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 TBlobField(ADOTable1.Fields[0]).SaveToFile('d:\1\q.jpg');
 ShellExecute(GetForegroundWindow,'open','d:\1\q.jpg','','d:\1\',0);
end;

end.
Поле типа OLE. Вставил чпег средствами акцесса. Все прекрасненько выгружается и работает из проги на Делфи.

Или я чето опять не так делаю? Ась?
Вложения
Тип файла: rar 1.rar (356.6 Кб, 9 просмотров)
I'm learning to live...

Последний раз редактировалось Stilet; 09.07.2013 в 22:39.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных из dbgrid в dbgrid Obnx БД в Delphi 8 26.06.2013 22:38
из двух dbgrid в один dbgrid!!!! JunioR_BK БД в Delphi 0 23.05.2012 17:28
связь одной dbgrid c другой dbgrid anabenne БД в Delphi 3 17.10.2011 10:15
Перемещение даннах из dbgrid в dbgrid Hobbit_88 БД в Delphi 7 10.06.2009 13:33
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30