>Pokusao sam eksperimente sa blob poljima medjutim sve je zavrsavalo neuspjesno
Evo ti primer koriscenja BLOB polja za upis i citanje arbitrarne datoteke.
Code:
var
St: TFileStream;
ChunkSize, ByteCount, BuffSize: Integer;
Buff: String;
begin
ChunkSize := 16384;
...
// Pisanje datoteke u BLOB polje
St := TFileStream.Create('C:\input.dat', fmOpenRead);
try
SetLength(Buff, St.Size);
try
BuffSize := 0;
repeat
ByteCount := St.Read(Buff[BuffSize + 1], ChunkSize);
Inc(BuffSize, ByteCount);
until ByteCount = 0;
ADOQuery1.Edit;
ADOQuery1.FieldByName('BlobField').AsString := Buff;
ADOQuery1.Post;
finally
SetLength(Buff, 0);
end;
finally
St.Free;
end;
...
// Citanje datoteke iz BLOB polja
Buff := ADOQuery1.FieldByName('BlobField').AsString;
ByteCount := 0;
St := TFileStream.Create('C:\output.dat', fmCreate or fmOpenWrite);
try
while ByteCount < Length(Buff) do
if ByteCount + ChunkSize <= Length(Buff) then
Inc(ByteCount, St.Write(Buff[ByteCount + 1], ChunkSize))
else
Inc(ByteCount, St.Write(Buff[ByteCount + 1], Length(Buff) - ByteCount))
finally
St.Free;
end;
end;
>jel postoji nacin za reprodukciju flash datoteka koje bi snimao tj stavljao na forme
Postoji, importuj ActiveX kontrolu Shockwave Flash. Ako je nema potrazi na Google-u "Flash ActiveX" i instaliraj
Edit:
Uhh... moze i daleko jednostavnije :)
Code:
TBlobField(ADOQuery1.FieldByName('BlobField')).LoadFromFile('C:\input.dat');
TBlobField(ADOQuery1.FieldByName('BlobField')).SaveToFile('C:\output.dat');
Samo je trebalo castovati u TBlobField...
[Ovu poruku je menjao Boris B. dana 09.04.2009. u 21:43 GMT+1]