I haven't got DBPro handy, so this is top-of-the-head stuff, try it though - might work.
First thing is, make a 3D distance formula, I reckon something like:
function dist#(x1#,y1#,z1#,x2#,y2#,z2#)
dist#=0
x#=x1#-x2#
y#=y1#-y2#
z#=z1#-z2#
dist#=sqrt((x#^2)+(y#^2)+(z#^2))
endfunction dist#
Don't quote me on that, it's similar, but I don't know if it's right.
I'd use this to position the camera at a set distance away from the object:
Function flycam(objno,traildist#)
point camera object position x(objno),object position y(objno),object position z(objno)
camdist#=dist#(camera position x(),camera position y(),camera position z(),position x(objno),object position y(objno),object position z(objno))
movedist#=traildist#-camdist#
move camera movedist#
Endfunction
Just call flycam(playerobject,distance#) every loop.
Van-B