Hola amigos:
Estoy tratando de usar el CursorAdapter y XMLAdapter para la explotación de
una BD de postgres, son mis primeras experiencias con estos controles.
Tengo el siguiente codigo:
*********
PROCEDURE ListaUsuarios() as String
LOCAL oCaUsuarios as CursorAdapter
LOCAL oXaUsuarios as XMLAdapter
LOCAL Retorno as String
lcMystring="DATABASE=MIBASE;SERVER=xxx.xx.xxx.xx;portT32;UID=postgres;pwdMYPASS;provider=MSDASQLR;DRIVER=postgreSQL;"
lcSelect="SELECT * FROM usuario"
oCAUsuarios = CREATEOBJECT("CursorAdapter")
WITH oCAUsuarios
.Alias = "Cur_Usuario"
.DataSourceType = "ODBC"
.DataSource = SQLSTRINGCONNECT(lcMystring)
.SelectCmd = lcSelect
.Tables = "usuario"
.CursorFill()
ENDWITH
oXAUsuarios = CREATEOBJECT("XMLAdapter")
oXAUsuarios.AddTableSchema("Cur_Usuario")
oXAUsuarios.ToXML("Retorno")
oCAUsuarios = .F.
oXAUsuarios = .F.
Return(Retorno)
ENDPROC
***********
Deseo me puedan ayudar con las siguientes interrogante:
Cada vez que llame a este procedimiento, el CursorAdapter establece una
NUEVA conexion con la BD de Postgres ¿verdad?, si es así ¿No creen que esta
tecnica de explotación de datos se hace muy lenta?
Si previamente ya he establecido una conexion a la base con el código:
lcMystring="DATABASE=MIBASE;SERVER=xxx.xx.xxx.xx;portT32;UID=postgres;pwdMYPASS;provider=MSDASQLR;DRIVER=postgreSQL;"
oConnection=SQLSTRINGCONNECT(lcMystring)
¿Existe alguna manera de indicar al CursorAdpater que ya existe esta
conexión establecida con la base de datos, la cual puede usar y por tanto no
es necesario que vuelva a conectarse? Esto con el fin de ganar velocidad.
¿recomiendan el uso del CursorAdapter?
Agradezco sus comentarios.
atte.
Luis Guevara
Leer las respuestas