Y la verdad, ha sido como volver a casa. Una casa renovada, eso si, pues el proyecto esta basado en VFP 9 por lo que he podido hacer uso de varias de las nuevas opciones que vinieron en esa excelente versión.
Paradójicamente, cada vez mas me encuentro a mi mismo aplicando en VFP conceptos que aprendí en .NET y específicamente en C#. En lugar de constantes he simulado enumeraciones usando la clase Empty y la función ADDPROPERTY, en lugar de usar una variable global donde almacenar el handle de conexión devuelto por SQLEXEC() me encontré representando la conexión con una clase llamada SqlConnection. Asi que, cuando antes hacia:
LOCAL nConn,nResult
nConn = 0
TRY
nConn = SQLSTRINGCONNECT(cConnStr)
nResult = SQLEXEC(nConn,cSQL,cCursor)
CATCH TO ex
FINALLY
IF nConn <> 0
SQLDISCONNECT(nConn)
ENDIF
ENDTRY
ahora hago:
LOCAL oConn
oConn = CREATEOBJECT("SqlConnection",cConnStr)
TRY
oConn.Open()
oConn.Send(cSQL,cCursor)
CATCH TO ex
FINALLY
IF oConn.State = connectionState.Opened
oConn.Close()
ENDIF
ENDTRY
Cómico verdad? pero lo cierto es que no solamente yo me siento mas cómodo con la 2da versión, supongo que porque me recuerda a lo que he venido usando en los últimos anos, sino que ademas creo que el código final es mas legible y mucho mas reusable y encapsulado también.
Por cierto, si alguien sabe como simular el concepto de Interfaces en VFP, que me avise, porque esa es una de las cosas de .NET que quisiera tener en VFP !!
4 comentarios:
q haces victor. no entiendo nada lo q pusiste jaja pero te busque porque desapareciste del facebook y queria saber si estabas bien con todo lo q esta pasando por alla. saludos! fede (federico weinstabl)
Buen día, le saluda Guillermo Arias, con código de cliente 1FF94CE5.
Tengo un problema con el DosPrint4, cuando quiero imprimir me dice que ya existe cierto archivo “.DPF” y pregunta si deseo sobreescribirlo. Este mensaje es incómodo, ¿cómo puedo evitar que aparezca?.
Esto no sucedía antes, pero ahora incluso en ciertas ocasiones no funciona el DosPrint4
Quiero saber si hay actualizaciones de tu software para imprimir en impresoras matriciales.
Atentamente
-------------------------------------------------------------
Guillermo Arias Tipismana
Lima- Perú
Tlf 01-6284348 – 998436047
Olvidaba indicar mi email: guillermo.arias@factronsoft.com , guillermoariast@hotmail.com
Hasta luego
Guillermo.
Lima
Hola Victor.
He llegado a tu blog por medio de un Link de Fernando D Bozzo
ME ha llamado la atención lo simplificado de llamar una conexión a un servidor.
En mi caso estoy trabajando con Postgres desde VFP 9.0, tengo estás líneas para hacer la conexión:
*!* Localhost Proyectos
lcConc='DRIVER={POSTGRESQL ANSI};DATABASE=my_database;SERVER=localhost;PORT=5432;UID=postgres;PWD=pass;'
Store Sqlstringconnect(m.lcConc, .T.) To nConexion
*-*? nConexion
If nConexion < 1
= Aerror( laError )
Messagebox(;
"Error en conexión con el servidor" + Chr(13)+ ;
"Nº de Error: " + Transform( laError( 1 ) ) + Chr(13)+ ;
laError( 2 ) + Chr(13)+ ;
laError( 3 ), 0 + 16, "Atención!" )
Cancel
ENDIF
Y las he reemplazado por las tuyas:
LOCAL nConexion
nConexion= CREATEOBJECT("SqlConnection",lcConc)
TRY
nConexion.Open()
nConexion.Send(cSQL,cCursor)
CATCH TO ex
FINALLY
IF nConexion.State = connectionState.Opened
nConexion.Close()
ENDIF
ENDTRY
Pero al correrlo me sale un error que dice:
Class definition SQLCONNECTION in not found.
que estoy planteando mal?
Publicar un comentario