Hola. A primera vista parace todo correcto. Supongo te conecta si tienes 
configurado Posgre con los mismos parámetros que los de las variables para 
conectarte. 

=SQLSETPROP(gnConnHandle_temp,'Transactions',1)

....

IF SQLCOMMIT(gnConnHandle_temp)>0


Pero veo estas trabajando con transacciones desde VFP, cosa nada aconsejable. 
Cuando trabajas con DB remotas, por lo que he podido experimentar, lo mejor es 
con Instrucciones de paso (instrucciones SQL propias del motor de base de 
datos) y las transacciones desde el servidor remoto. No vistas remotas y no 
SQLCOMMITS y SQLROLLBACS de Fox. De esta forma controlas perfectamente todo.
Si SQLEXECT te devuelve 1 ha funcionado correctamente. Entonces puedes enviar 
un COMMIT de la misma manera que lo has hecho con el INSERT. Si vuelves a 
obtener 1 la transacción ha finalizado correctamente.  

Carlos Joaniquet Tamburini

El 07/12/2009, a las 14:42, Patricio Castro <[email protected]> escribió:

Hola yo programa también en VFP 9, analiza este ejemplo, sobre todo la cadena 
de conexión y me cuentas por favor:

lcServidor          = 'localhost'
lcPuerto            = '5432'
lcBaseDatos      = 'prueba'
usu                   = 'postgres'
pass                 = '1234'

lcStr                  = 'DRIVER={PostgreSQL Ansi};SERVER=' + lcServidor +;
              ';port=' + lcPuerto + ';DATABASE=' + ALLTRIM(lcBaseDatos) +;
              ';UID=' + usu +;
              ';PWD='+ pass +';'

gnConnHandle_temp= SQLSTRINGCONNECT(lcStr,.T.)


if gnConnHandle_temp = -1
    AERROR(arrayerror)
    
    if arrayerror(4)='28000' then
        MESSAGEBOX('Usuario o contraseña incorrectos',16,':: Error en la 
conexión ::')
    endif
    else
        WAIT WINDOW "Conexion exitosa"
        =SQLSETPROP(gnConnHandle_temp,'Transactions',1)
        
        sqlexec(gnConnHandle_temp,"INSERT INTO ventas (cli_rut,ven_moto)VALUES 
(' 18855997', 221379)")
        

        IF SQLCOMMIT(gnConnHandle_temp)>0
            MESSAGEBOX("Datos Actualizados",0+42,"Mensaje de Dialogo")
            ELSE
                IF AERROR(laError)>0
                    MESSAGEBOX("Se ha producido un error"+laError[2])
                endif
        endif
        = SQLDISCONNECT(gnConnHandle_temp)
endif


         
  Patricio Castro Benavides
                       




--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán

Responder a