Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BLOB поля [D6, WinXP]


LVG ©   (2002-04-30 07:36:00) 

Пожалуйста подскажите как в BLOB поле сохранить wave и\или mp3
файл. Заранее благодарен.


Delirium   (2002-05-05 12:14:00) [1]

Пожалуй, самое "правильное" всё же так:
TBLOBField(ADOQuery1.FieldByName("MyField")).LoadFromFile("c:\my.mp3");


Dj_Action   (2002-05-05 04:03:00) [2]

Молодец, я бы лучше не написал, только я думаю что если у него файло будет большой(>1 мега) то Exception выпрегнет, проверено.
Это связано со стеком в который помещается это поток. Решение есть первое самое нормальное.


Desdechado   (2002-04-30 10:22:00) [3]

можно и проще
Query1.Sql.Text :=
"INSERT INTO testblob " +
" ( " +
" fBlob" +
" )" +
" VALUES" +
" (" +
" :ParamBlobField" +
")";
Query1.ParamByName("ParamBlobField").DataType := ftBlob;
Query1.ParamByName("ParamBlobField").ParamType := ptInput;
Query1.ParamByName("ParamBlobField").LoadFromFile("MyFile",ftBlob);
Query1.ExecSql;


AFROLOV   (2002-04-30 10:20:00) [4]

function AddPatern(var ADOQuery:TADOQuery; FName:string):Int64;
var
tmp,tmp1:Int64;
SQLStr:String;
BlobStream : TStream;
FileStream : TFileStream;
begin
.......
ADOQuery.SQL.Clear();
ADOQuery.SQL.Add("Select Id,File from Paterns where Id="+IntToStr(tmp1)+";");
ADOQuery.Open();
FileStream:=TFileStream.Create(FName,fmOpenRead);
ADOQuery.Edit;
BlobStream:=ADOQuery.CreateBlobStream(ADOQuery.FieldByName("File"),bmWrite);
BlobStream.CopyFrom(FileStream,0);
BlobStream.Free;
ADOQuery.Post();
FileStream.Free;
ADOQuery.Close();
......


Наверх

Титульная страница Поиск, карта сайта Написать письмо