Page 1 of 1
Consultas SQL con ADS "LOCAL" DUDA
Posted: Tue Oct 25, 2005 5:49 am
by Hernan Diego Ceccarelli
Hola,
Siempre me quedo una duda existencial. Se pueden hacer consultas SQL de
tablas DBF del ADS Local server desde funciones propias del ADS local ??
Como ? Que funciones ?? Como se usan ? Algun mini ejemplo
Hernan
Posted: Tue Oct 25, 2005 3:57 pm
by R.F.
Con ADS se puede hacer DE TODO.
Se puede hacer con las funciones propias del RDDADS, pero no te lo recomiendo, el barrido de los cursores es bastante complicado
Yo lo hago via ADO de esta manera: (OJO, requiere diccionario de datos y tener instalado el cliente ADO para ADS)
Code: Select all
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
LOCAL oComando := TOLEAUTO():New("adodb.command")
LOCAL oRecordset
LOCAL aDatos := {}
/* comenzamos la conexion */
oConexionAdo:Open("Provider=Advantage.OLEDB.1;User ID=adssys;Data Source=c:\fwapps\klm\agentperformance.add;Persist Security Info=False;ServerType=ADS_LOCAL_SERVER")
/*paso 2, crear un objeto comando y relacionarlo con el objeto conexion previamente creado */
oComando:ActiveConnection(oConexionAdo)
// indicamos el comando a ejecutar como cadena de caracteres
oComando:CommandText := "Select * from agents order by iatacode"
//ejecutamos el comando y el resultado regresa en un objeto de tipo RecordSet
oRecordSet := oComando:Execute()
? oRecordSet:RecordCount()
? oRecordSet:Fields:Count()
DO WHILE .NOT. oRecordSet:Eof()
AADD(aDatos,oRecordset:Fields(0):value)
oRecordSet:MoveNext()
ENDDO
MsgList(aDatos)
Posted: Wed Oct 26, 2005 5:41 am
by Hernan Diego Ceccarelli
Rene,
A que te refieres con "barrido de cursores" ?
Estuve usando las funciones de ADS, realmente las consultas son INSTANTANEAS, las creo en un area y la lee como un dbf obteniendo e recno original y todo
Despues cierro el area, no necesito mucha complejidad, que problema me traeria eso ? No uso ni diccionarios ni nada, algo bien simple me conformo
AdsConnect
ADSCreateSQLStatement("SQLarea",2)
ADSExecuteSQLDirect( <cConsulta> )
y despues cierro el area SQLarea
AdsDisconnect
A proposito, donde ha quedado la funcion AdsGetConnectionHandle() en la nueva version de xHarbour ??? Sabes algo al respecto ?
Hernan
Posted: Wed Oct 26, 2005 9:55 pm
by Marcelo Via Giglio
Hernan,
no consigo enviarte un emial a cesotech.com.ar
Marcelo
Posted: Wed Oct 26, 2005 11:01 pm
by Hernan Diego Ceccarelli
Marcelo,
hceccarelli@cesotech.com.ar
checanet@gmail.com
Es mas el correo
hceccarelli@cesotech.com.ar lo uso siempre, no tiene problemas, salvo que tengas algun problema de DNS, que te hace rebota ? Lo estoy usando y bajo mails de todos correctamente
Bueno prueba enviarme a la casilla de gmail que te puse.
RECUERDA NO ENVIAR .ZIP al correo de gmail que gmail los filtra (pensando que es warez
) Recuerda, si quieres mandar un archivo comprimido zipeado con ejemplos y documentacion, cambiarle la extension y avisa.
Salu2
Hernan