Page 1 of 1

GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 6:01 am
by leandro
Buenos días para todos

Code: Select all  Expand view

cAlias := GetNewAlias( "CUST" )
 


Sabe alguien si existe alguna función en ADO, que haga algo similar a lo que hace en dbf GetNewAlias( "CUST" )

Espero haberme hecho entender, de antemano gracias.

Re: GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 6:39 am
by nageswaragunupudi
There is no need for using Aliases in ADO.
We can open any number of recordsets for the same table at the same time and each recordset acts like different alias for dbf.

Re: GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 1:41 pm
by leandro
Ok, Mr.Rao, entonces cambio la pregunta

Como puedo controlar la apertura de los recorset, sobre una ventana MDI?

Ya que cuando abro múltiples recorset, estos se abren sin problema, el error sale al momento en que cierro el segundo recorset, sale un error indicando que este no existe?

¿Se pueden colocar objetos recorset dentro de un array, para controlar independientemente su apertura y posterior cierre?

No se si me hice entender.

De antemano gracias

Re: GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 2:32 pm
by cmsoft
Leandro:
Si tus recorset son locales a cada función no deberías tener problemas en que se abran todas las veces que quieras. Como dice Mr Rao, puedes abrir cada recorset sobre la misma tabla y trabajan en forma diferente.
Lo que si podrías controlar, es que una misma función no se abra dos veces en un entorno MDI.
Si este es tu caso, lo que puedes hacer es en cada procedimiento controlar que no haya sido lanzado antes, y al cerrarlo, quitarlo de tu array de procesos activos
Code: Select all  Expand view

MEMVAR oApp
STATIC cVentana
PROCEDURE MiProceso()
cVentana := PROCNAME()
IF ASCAN(oApp:aVentanas,cVentana) > 0
   hHand := ASCAN(oApp:aVentanas,cVentana)
   oApp:oWnd:Select(hHand)
   oApp:oWnd:oWndClient:aWnd[hHand]:Restore()
   RETURN
ENDIF
AADD(oApp:aVentanas,cVentana)
// Tu codigo
// Y al salir validar que saque el proceso de tus ventanas abiertas
ACTIVATE WINDOW oWnd1 ON INIT Incrusta( oWnd1, oDlg, .T.) VALID(ADEL(oApp:aVentanas,ASCAN(oApp:aVentanas,cVentana)))
 

Espero haber comprendido

Re: GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 2:42 pm
by leandro
Cesar muchas gracias por responder

En este momento lo estoy haciendo de la manera como lo indicas, en un POST anterior me habías ayudado con ese tema. Se controla la apertura del entorno MDI, para que este se abra únicamente una vez y si esta abierto pone en primer plano la ventada MDI.

Pero lo que quiero es poder abrir n cantidad de ventanas MDI publicas, con n cantidad de recorset también públicos.

Re: GetNewAlias() existe para ADO?

PostPosted: Thu Sep 23, 2021 3:26 pm
by cmsoft
La clase TDolphin tiene un metodo que se llama GetQueryId que te da el numero de Id de la query en custion.
No se si usas esta clase o la nueva de Fivewin.
Con ese ID podrías controlarlo.