De documenten zijn opgeslagen als blobs in een database.
Er zijn 2 belangrijke velden, een veld "file" die dus in binaire vorm het document zelf is, en een veld "extension" die de extensie van het document bevat.
Na wat onderzoek op google ben ik op het volgende stukje code gestuit :
Code:
var
data_index : int64;
size : int64;
br : array[0..1023];
remaining : array of byte;
sql := 'SELECT file, extension FROM Data WHERE documentsid = ' + docid;
command := SqlCommand.Create(sql, conn);
dr := command.ExecuteReader(CommandBehavior.SequentialAccess);
dr.Read;
Response.ContentType := 'application/octet-stream';
data_index := 0;
size := 0;
size := dr.GetBytes(0,data_index,br,0,1024);
while (size = 1024) do begin
Response.BinaryWrite(br);
data_index := data_index + 1024;
size := dr.GetBytes(0,data_index,br,0,1024);
end;
SetLength(remaining, size);
Array.Copy(buffer, 0, remaining, 0, size);
Response.BinaryWrite(remaining);
een eerste vraag : is dit de correcte manier om dit klusje klaar te spelen of heeft er iemand nog alternatieven en/of tips?
Ten tweede de method "array.copy" lukt niet... Heb ik iets vergeten ofzo?
thx
Bookmarks