Inicio > Visual Fox Pro (API de Windows) > Uso del proveedor de SQL vendor-neutral

Uso del proveedor de SQL vendor-neutral


Uso del proveedor de SQL vendor-neutral

DO decl

#DEFINE SQL_HANDLE_DBC         2
#DEFINE SQL_SUCCESS            0
#DEFINE SQL_SUCCESS_WITH_INFO  1

PRIVATE hEnv, hConn
STORE 0 TO hEnv, hConn

* parámetros que se pasan a iniciar una conexión: DSN, usuario, contraseña
* reemplazarlos con los parámetros de conexión válida para su equipo

IF Not GetConnect(“ECDCMusic”, “sa”, “”)
RETURN
ENDIF

* de muestras de los comandos SQL con _Escape_ Secuencias (cláusulas de escape)

LOCAL lcSQL
lcSQL = [SELECT * FROM Prueba WHERE codigo > 100]

* devuelve la cadena SQL
* Aviso: no se ejecuta la sentencia SQL
? GetNativeSQL(lcSQL)

DO GetDisconnect
* fin d eprincipal

FUNCTION GetNativeSQL (lcSQL)
LOCAL lcBuffer, lnBufSize, lnResult
lnBufSize = 4096
lcBuffer = Repli(Chr(0), lnBufSize)

lnResult = SQLNativeSql (hConn, lcSQL, Len(lcSQL),;
@lcBuffer, lnBufSize, @lnBufSize)
IF INLIST(lnResult, SQL_SUCCESS, SQL_SUCCESS_WITH_INFO)
RETURN Left(lcBuffer, lnBufSize)
ELSE
RETURN “#error#”
ENDIF

FUNCTION GetConnect (lcServer, lcUser, lcPwd)
= SQLAllocEnv(@hEnv)
IF hEnv = 0
= MessageB (“Unable to allocate ODBC environment”)
RETURN .F.
ENDIF

= SQLAllocHandle (SQL_HANDLE_DBC, hEnv, @hConn)
IF hConn = 0
= MessageB (“Unable to allocate ODBC connection handle”)
RETURN .F.
ENDIF

LOCAL lnResult
lnResult = SQLConnect32 (hConn, lcServer, Len(lcServer),;
lcUser, Len(lcUser), lcPwd, Len(lcPwd))

IF INLIST(lnResult, SQL_SUCCESS, SQL_SUCCESS_WITH_INFO)
RETURN .T.
ELSE
= MessageB (“Unable to connect to the [” + lcServer + “]”)
RETURN .F.
ENDIF

PROCEDURE GetDisconnect
IF hConn <> 0
= SQLDisconnect32 (hConn)
= SQLFreeHandle (SQL_HANDLE_DBC, hConn)
ENDIF

IF hEnv <> 0
= SQLFreeEnv(hEnv)
ENDIF
RETURN

PROCEDURE decl
DECLARE SHORT SQLAllocEnv IN odbc32 INTEGER @env
DECLARE SHORT SQLFreeEnv IN odbc32 INTEGER env

DECLARE SHORT SQLFreeHandle IN odbc32;
INTEGER HandleType, INTEGER Handle

DECLARE SHORT SQLAllocHandle IN odbc32;
INTEGER HandleType, INTEGER InputHandle,;
INTEGER @OutputHandlePtr

DECLARE SHORT SQLConnect IN odbc32 AS SQLConnect32;
INTEGER ConnectionHandle,;
STRING ServerName, INTEGER NameLength1,;
STRING UserName, INTEGER NameLength2,;
STRING Authentication, INTEGER NameLength3

DECLARE SHORT SQLDisconnect IN odbc32 AS SQLDisconnect32;
INTEGER ConnectionHandle

DECLARE SHORT SQLNativeSql IN odbc32;
INTEGER ConnectionHandle, STRING InStatText, INTEGER TextLen1,;
STRING @OutStatText, INTEGER BufferLen, INTEGER @TextLen2Ptr

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: