View Full Version : ذخیره کل یک فایل در یک فیلد بانک اطلاعاتی
  
پنج شنبه 20 فروردین 1383, 02:52 صبح
با سلام 
چگونه می شود کل اطلاعات یک فایل را در یک فیلد مثلا sql_variant بانک sql-server ذخیره و بعد بازیابی کرد؟
با تشکر
پنج شنبه 20 فروردین 1383, 11:04 صبح
ذخیره کردن فایل توی دیتابیس معمولا پیشنهاد نمیشه مگر اینکه تعداد فایلها بسیار زیاد باشه 
  بهتره که فایل ها رو توی یه دایرکتوری جدا نگه داری بعد مسیرش رو توی دیتابیس ذخیره کنی
اگه خیلی دوست داری که توی بانک باشه از فیلد های blob استفاده کن
Kambiz
پنج شنبه 20 فروردین 1383, 11: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, 18:41 عصر
با سلام 
از لطف شما خیلی متشکرم. مشکلم با استفاده از روش پیشنهادی شما و استفاده از adotableحل شد. فقط نمی دانم اگر بخواهم از دستورات sql و adoquery برای اضافه کردن رکورد به بانک اطلاعاتی استفاده کنم  آیا راهی دارد؟
با تشکر
پنج شنبه 20 فروردین 1383, 19:33 عصر
با فیلدهای Blob:
 BlobStream := ClientDataSet1.CreateBlobStream(ClientDataSet1blob field,
        bmRead);
حالا با blobstream که از نوع Tstream هست هر کاری بخاین میتونین بکنین
اگه متن باشه توی memo لود میکنین اگه عکس باشه...صدا...... هرچی...
برای نوشتن هم بجای bmread از bmwrite استفاده میکنیم و stream رو توی رکورد مینویسیم...
مجتبی جوادی
دوشنبه 08 مرداد 1386, 19:31 عصر
آقای کامبیز سلام
اگر ممکن است نحوه استفاده از کدها را توضیح دهید .
چطور و کجا باید استفاده شوند . در کدام رویداد و . . . 
با تشکر
vcldeveloper
سه شنبه 09 مرداد 1386, 09:56 صبح
آقای کامبیز سلام
اگر ممکن است نحوه استفاده از کدها را توضیح دهید .
چطور و کجا باید استفاده شوند . در کدام رویداد و . . .
تاریخ پست ها را ببینید!!!!!!!!!
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.