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 :D

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 :wink:

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 :roll: ) Recuerda, si quieres mandar un archivo comprimido zipeado con ejemplos y documentacion, cambiarle la extension y avisa.

Salu2
Hernan :D