Depués de realizar la operación prueba la poner un MessageBox para que te muestre el último error, a ver si te devuelve algun error que te aclare qué puede estar pasando:
Código Delphi
[-]
MessageDlg(Format('Último error: %s' , [SysErrorMessage(GetLastError())]),
mtInformation, [mbOK], 0);