![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема Запись файла > 1 Mб в поле Blob (база MS SQL) [D6, D7, MSSQL, PostgresSQL]
mtb © (2004-01-13 12:40:00)
Возникла проблема записи файлов > 1Мб в базу
привожу код который работает до 1Мб без проблем, а с большими файлами дает ошибку "Invalid BLOB length."
ниже привожу код
procedure TForm1.Button1Click(Sender: TObject);
var
blob: TBlobStream;
fs: TFileStream;
begin
Table1.Edit;
blob:=table1.CreateBlobStream(table1.FieldByName("bl"), bmWrite)as TBlobStream;
try
blob.Seek(0, soFromBeginning);
fs := TFileStream.Create("c:\assa.doc", fmOpenRead or fmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blob.Free;
table1.Post;
end;
end;
mtb (2004-01-14 07:27:00) [1]
Спасибо всем!
С утра получилось.
BDE лучше не юзать.
сработал следующий код (может не очень оптимальный, но работает)
procedure TForm1.Button4Click(Sender: TObject);//загрузка в базу
begin
adoquery1.Parameters.ParamByName("bl").LoadFromFile("c:\assa.exe",ftBlob);
adoquery1.ExecSQL;
end;
procedure TForm1.Button6Click(Sender: TObject);//из базы в файл
begin
TBlobField(ATable1.FieldByName("bl")).SaveToFile ("c:\asssa123.exe")
end;
оптимизацию пока не проводил
Delirium (2004-01-13 16:24:00) [2]
Проблема определённо в BDE. Используйте ADO.
Sandman25 (2004-01-13 15:46:00) [3]
[7] mtb (13.01.04 14:40)
Жаль. Попробуйте засунуть в БД большой Blob не из клиента, а с помощью спец. утилиты. Ну типа IBExpert для IB, dbaccess для Informix, не знаю как называется для MSSQL. Чтобы понять, на каком уровне ошибке - то ли БД не принимает, то ли отсечение при передаче происходит.
mtb (2004-01-13 14:40:00) [4]
Re
Через insert into и
Param.LoadFromFile не пробовали?
При записи ошибок не выдало
Однако после считывания и записи в файл данные усеклись до 999 996 байт :(
mtb (2004-01-13 13:59:00) [5]
Re
Через insert into и
Param.LoadFromFile не пробовали?
Получилось Спасибо
Теперь попробую считать данные и кинуть опять в файл
Sandman25 (2004-01-13 13:40:00) [6]
Через insert into и
Param.LoadFromFile не пробовали?
mtb (2004-01-13 13:39:00) [7]
Удалено модератором
mtb (2004-01-13 13:38:00) [8]
может кто знает всетаки в чем проблема?
mtb (2004-01-13 12:55:00) [9]
через BDE blob size менял, ничего не вышло
использовал BDE ODBC и MSSQL
Danilka (2004-01-13 12:49:00) [10]
работа через БДЕ?
если да, то может, дело в параметре алиаса "BLOB SIZE"