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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2013, 15:54   #1
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
Хорошо DBGrid

Всем доброго времени суток! Приношу свои извинения, если данная тема уже была. Вопрос таков: "Открытие файла из DBGrid". У меня имеется база сделанная в MS Access 2013, в ней есть поле "Изображение", тип этого поля OLE. Вывожу таблицу из базы в DBGrid, но файлы он мне не открывает по нажатию на значение поля. Вот код:

Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if Column.Field.FieldName='Изображение ' then
begin
ShellExecute(0,'Open',PChar(Column. Field.AsString),'','',SW_SHOWDEFAUL T);
end;
end;
Учиться, учиться и еще раз учиться!

Последний раз редактировалось Stilet; 08.07.2013 в 18:09.
Eugene_Stoun вне форума Ответить с цитированием
Старый 08.07.2013, 18:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if Column.Field.FieldName='Изображение ' then
begin
 if ShellExecute(0,'Open',PChar(Column. Field.AsString),'','',SW_SHOWDEFAULT)<=32 then RaiseLastOSError;
end;
end;
И смотрим что за ошибку выводит
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2013, 20:14   #3
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
По умолчанию

Спасибо, будем пробовать и смотреть, что delphi нам на это скажет
Учиться, учиться и еще раз учиться!
Eugene_Stoun вне форума Ответить с цитированием
Старый 08.07.2013, 20:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
будем пробовать и смотреть
... И кросспостов больше не делать на форумах
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2013, 07:46   #5
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
... И кросспостов больше не делать на форумах
Конечно не будем, но вопрос еще не закрыт, так как также ничего не происходит при нажатии, не открывает файлы
Учиться, учиться и еще раз учиться!
Eugene_Stoun вне форума Ответить с цитированием
Старый 09.07.2013, 08:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит ставь туда точку прерывания и анализируй пошаговкой.
Отлаживать, надеюсь, умеешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2013, 10:01   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

перед тем как открыть файл с OLE-поля - его нужно куда-нибудь сохранить (память или диск), а потом уже открывать
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.07.2013, 10:42   #8
Eugene_Stoun
Пользователь
 
Аватар для Eugene_Stoun
 
Регистрация: 14.06.2013
Сообщений: 56
По умолчанию

Все бы хорошо, но столько сайтов уже пересмотрел, как передать файл в поток...Но сколько не пробывал все никак не выходит Добрый человек, помоги еще советом, буду признателен
Учиться, учиться и еще раз учиться!
Eugene_Stoun вне форума Ответить с цитированием
Старый 09.07.2013, 12:55   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

по идее как-то так должно быть (в общем смысле)
Код:
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;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 09.07.2013, 13:07   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если картинка записана в базу средствами ACCESS-а, то так просто не получится. По этой ссылке можно почитать, насколько код там работоспособен не проверял
http://stackoverflow.com/questions/4...my-application
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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