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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 19:07   #1
wulf_01
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 57
По умолчанию blob поля в бд paradox

не подскажете как с blob полями работать
в таблице есть поле "изменения" типа ole как туда вводить инфу?
знаю что там будет храниться ссылка на документ но каким образом это организовать
просто я новичек )
если можно с примером
wulf_01 вне форума Ответить с цитированием
Старый 28.10.2011, 20:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Для затравки :
Сохранение и чтение файлов в BLOB-полях
Код:
// Сохраняем
procedure TForm1.Button1Click(Sender: TObject); 
var 
blob: TBlobStream; 
begin 
blob := yourDataset.CreateBlobStream(yourDataset.FieldByName('YOUR_BLOB'), bmWrite); 
try 
blob.Seek(0, soFromBeginning); 
fs := TFileStream.Create('c:\your_name.doc', fmOpenRead or 
fmShareDenyWrite); 
try 
blob.CopyFrom(fs, fs.Size) 
finally 
fs.Free 
end; 
finally 
blob.Free 
end;

// Загружаем
procedure TForm1.Button1Click(Sender: TObject); 
var 
blob: TBlobStream; 
begin 
blob := yourDataset.CreateBlobStream(yourDataset.FieldByName('YOUR_BLOB'), bmRead); 
try 
blob.Seek(0, soFromBeginning); 
with TFileStream.Create('c:\your_name.doc', fmCreate) do 
try 
CopyFrom(blob, blob.Size); 
finally 
Free; 
end; 
finally 
blob.Free; 
end;
Как удалить данные из BLOB-поля ?
Только с использованием SQL:
Код:
UPDATE MyTable 
Set MyBlobField = Null 
WHERE MyField = 'Myvalue'
mihali4 вне форума Ответить с цитированием
Старый 29.10.2011, 19:14   #3
wulf_01
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 57
По умолчанию

прошу прощения за тупость)
но как работать с этими полями?
создал таблицу в ней поле типа ole
кагда в дбгрид таблицу загружаю там отображается просто ole объект
а как к примеру туда данные записать или файл открыть??

mihali4 по вашему примеру можно работать и без базы данных, но тогда зачем указывать в базе тип поля ole

Последний раз редактировалось Stilet; 29.10.2011 в 19:34.
wulf_01 вне форума Ответить с цитированием
Старый 29.10.2011, 19:28   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Господь с вами ! Как это без базы данных ???
А компонент yourDataset.FieldByName('YOUR_BLOB' ) с указанием конкретного поля не к БД цепляется ?
Идите-ка вы в самую первую тему этого раздела - "Литература в помощь при работе с базами данных" и почитайте хоть что-нибудь.
Ликбезом с вами никто тут заниматься не будет...
Если в ближайшее время не представите своих наработок, тему закрою, а потом удалю.
mihali4 вне форума Ответить с цитированием
Старый 29.10.2011, 19:43   #5
wulf_01
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 57
По умолчанию

19:43
извеняюсь не обратил внемания
просто я никак въехать не могу и инфу найти не могу по работе с ole полями

19:52
у меня есть таблица "pc" в ней есть поле изменение когда редактирую
таблицу в поле должно вноситься какие либо изменения если таковые произошли изменения в размере не ограничены поэтому мне посоветовали использовать поле с типом ole но как организовать ввод в это поле и просмотр не могу разобраться инфу найти чет не получается
работаю с базой paradox, query, dbgrid

Красные жирные циферки видны ?
Это время, когда вы отправляли свои сообщения друг за другом, подряд.
Читаем правила раздела.
По правилам это приравнивается к флуду.

Последний раз редактировалось mihali4; 29.10.2011 в 20:46.
wulf_01 вне форума Ответить с цитированием
Старый 29.10.2011, 20:48   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от wulf_01 Посмотреть сообщение
у меня есть таблица "pc" в ней есть поле изменение когда редактирую таблицу ... работаю с базой paradox, query, dbgrid
Где наработки ? Где код ? Пока что только неразборчивый словесный понос...
mihali4 вне форума Ответить с цитированием
Старый 29.10.2011, 20:49   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Один вариант выгрузки в Stream и обратной загрузки вам показали. Есть еще способы
Код:
TBlobField(yourDataset.FieldByName('YOUR_BLOB')).SaveToFile
TBlobField(yourDataset.FieldByName('YOUR_BLOB')).SaveToStream
TBlobField(yourDataset.FieldByName('YOUR_BLOB')).LoadFromToFile
TBlobField(yourDataset.FieldByName('YOUR_BLOB')).LoadFromStream
А как поступать с данными выгруженными в Stream или файл вам решать, зависит от вида информации, которую вы кстати и не указали
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2011, 00:10   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А я файл в бд гружу обычно sql-запросом. Быстрее работает
Код:
with Query1 do
begin
Sql.text:='Insert into myTable (a) Values (:b)'; 
Parameters.ParseSQL(Sql.Text, True); 
Parameters.ParamByName('b').LoadFromFile('имя_файла', ftBlob); 
ExecSql;
end;
P.S. Пример кода выдрал из своего блокнота... если что не так, извиняйте...
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Blob-поля в Firebird Liones БД в Delphi 1 23.11.2010 11:45
обновление blob поля artemavd БД в Delphi 2 31.07.2009 04:09
Чтения из BLOB - поля Den3D БД в Delphi 2 05.05.2009 15:17
Blob поля в делфи dagarik БД в Delphi 2 02.12.2007 17:33