Работаю на Д7 + FB1.5.
Пытаюсь наладить backup/restore через isc_service_xxx.
Через IBExpert все работает, блин

А я даже подключиться не могу.
Пишет: Cannot attach to services manager
Подскажите кто знает, что не так.
Привожу код:
...
type
isc_status = longint;
pisc_status = ^isc_status;
isc_svc_handle = pointer;
pisc_svc_handle = ^isc_svc_handle;
isc_resv_handle = pointer;
pisc_resv_handle = ^isc_resv_handle;
status_vector = array[0..19] of isc_status;
pstatus_vector = ^status_vector;
Tisc_service_attach = function(psv : pisc_status;
serv_len : Word;
service : PChar;
serv_h : Tisc_svc_handle; //(PVoid)
buf_len : Word;
buf : PChar) : isc_status; stdcall;
var
isc_service_attach : Tisc_service_attach;
//загрузка
FLibHandle := LoadLibrary(DLL_Name);
//fbclient.dll or gds.dll
@isc_interprete := GetProcAddress(FLibHandle, 'isc_interprete');
@isc_service_attach := GetProcAddress(FLibHandle, 'isc_service_attach');
if @isc_service_attach = nil then Exit;
...
function TForm1.Attach : boolean;
var
status : pisc_status; //pstatus_vector;
errCode : isc_status;
service : PChar;
serv_len : Word;
res : integer;
mes : array[0..1023] of char;
buf : string;
F_service_handle : Tisc_svc_handle;
const
us = 'sysdba';
pas = 'masterkey';
begin
result := false;
if @isc_service_attach = nil then Exit;
Buf := Char(isc_spb_version);
Buf := Buf + Char(isc_spb_current_version);
Buf := Buf + Char(isc_spb_user_name);
Buf := Buf + Char(Length(us));
Buf := Buf + us;
Buf := Buf + Char(isc_spb_password);
Buf := Buf + Char(Length(pas));
Buf := Buf + pas;
service := 'localhost:service_mgr';
serv_len := Length(service);
F_service_handle := nil;
errCode := isc_service_attach(status, serv_len, service, @F_service_handle, Length(buf), PChar(buf));
if errCode <> 0 then begin
FillChar(mes, Length(mes), 0);
isc_interprete(@mes, @status);
result := false;
ShowMessage(mes);
end