PDA

View Full Version : ذخیره کل یک فایل در یک فیلد بانک اطلاعاتی



پنج شنبه 20 فروردین 1383, 01:52 صبح
با سلام
چگونه می شود کل اطلاعات یک فایل را در یک فیلد مثلا sql_variant بانک sql-server ذخیره و بعد بازیابی کرد؟
با تشکر

پنج شنبه 20 فروردین 1383, 10:04 صبح
ذخیره کردن فایل توی دیتابیس معمولا پیشنهاد نمیشه مگر اینکه تعداد فایلها بسیار زیاد باشه
بهتره که فایل ها رو توی یه دایرکتوری جدا نگه داری بعد مسیرش رو توی دیتابیس ذخیره کنی
اگه خیلی دوست داری که توی بانک باشه از فیلد های blob استفاده کن

Kambiz
پنج شنبه 20 فروردین 1383, 10:11 صبح
procedure LoadFileToVariantField(Field: TVariantField; const FileName: String);
var
FileStream: TFileStream;
StringStream: TStringStream;
begin
FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
StringStream := TStringStream.Create('');
try
StringStream.CopyFrom(FileStream, 0);
Field.AsString := StringStream.DataString;
finally
StringStream.Free;
end;
finally
FileStream.Free;
end;
end;

procedure SaveVariantFieldToFile(Field: TVariantField; const FileName: String);
var
FileStream: TFileStream;
StringStream: TStringStream;
begin
FileStream := TFileStream.Create(FileName, fmCreate or fmShareExclusive);
try
StringStream := TStringStream.Create(Field.AsString);
try
FileStream.CopyFrom(StringStream, 0);
finally
StringStream.Free;
end;
finally
FileStream.Free;
end;
end;

حتما" روش بهتر و معقولتری هم پیدا می‌شه.

پنج شنبه 20 فروردین 1383, 17:41 عصر
با سلام
از لطف شما خیلی متشکرم. مشکلم با استفاده از روش پیشنهادی شما و استفاده از adotableحل شد. فقط نمی دانم اگر بخواهم از دستورات sql و adoquery برای اضافه کردن رکورد به بانک اطلاعاتی استفاده کنم آیا راهی دارد؟
با تشکر

پنج شنبه 20 فروردین 1383, 18:33 عصر
با فیلدهای Blob:

BlobStream := ClientDataSet1.CreateBlobStream(ClientDataSet1blob field,
bmRead);
حالا با blobstream که از نوع Tstream هست هر کاری بخاین میتونین بکنین
اگه متن باشه توی memo لود میکنین اگه عکس باشه...صدا...... هرچی...
برای نوشتن هم بجای bmread از bmwrite استفاده میکنیم و stream رو توی رکورد مینویسیم...

مجتبی جوادی
دوشنبه 08 مرداد 1386, 18:31 عصر
آقای کامبیز سلام
اگر ممکن است نحوه استفاده از کدها را توضیح دهید .
چطور و کجا باید استفاده شوند . در کدام رویداد و . . .
با تشکر

vcldeveloper
سه شنبه 09 مرداد 1386, 08:56 صبح
آقای کامبیز سلام
اگر ممکن است نحوه استفاده از کدها را توضیح دهید .
چطور و کجا باید استفاده شوند . در کدام رویداد و . . .
تاریخ پست ها را ببینید!!!!!!!!!