Problem solved, you were right davesimplewear, I had the wrong directory structure, and in this case I was also trying to copy to a nonexistant directory ('db_backup' didn't exist') so created the directory and it actually worked for me:
procedure TForm1.FileCopy(const FSrc, FDst: string);
var
sStream,
dStream: TFileStream;
begin
sStream := TFileStream.Create(FSrc, fmOpenRead);
try
dStream := TFileStream.Create(FDst, fmCreate);
try
{Forget about block reads and writes, just copy
the whole darn thing.}
dStream.CopyFrom(sStream, 0);
finally
dStream.Free;
end;
finally
sStream.Free;
end;
end;
procedure TForm1.btn_cpy_dbClick(Sender: TObject);
begin
form1.Sqlite3Dataset1.Active:=false;
dbsource := extractfilepath(application.exename)+'database\sqlite3_test.db';
dbdest := extractfilepath(application.exename)+'db_backup\sqlite3_test.db';
form1.FileCopy(dbsource,dbdest);
end;
thanks to all who listen to all this and responded.
mike