In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

seleccionar datos sql

Foro público de Xailer en español
Responder
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

seleccionar datos sql

Mensaje por Fredy »

Ignacio,
1.-
Partiendo de vuestro ejemplo ODBCData2, imagina que quiero poner un
Tedit y un botón, de tal manera que al introducir un dato en el edit y
pulsar el botón me filtre el dataset y me muestre sólo los registros que
empiecen con ese dato.
¿Qué harí­a?
::odataset:cSelect:= "select * ....
::odatasource:Query("select *...
¿puedes poner un trozo de un ejemplo?
2.-
Puedes explicar un poco más lo de los Proccess
3.-
Porqué
:OnComplete := {|| ::UpdLabel() }
y no
:OnComplete := ::UpdLabel()
Un saludico,
Fredy
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

seleccionar datos sql

Mensaje por jfgimenez »

Fredy,
> 3.-
> Porqué
> :OnComplete := {|| ::UpdLabel() }
>
> y no
> :OnComplete := ::UpdLabel()
Esto te lo puedo explicar yo ;-)
Los eventos se pueden asignar de 2 formas en Xailer: como un bloque de
código o como un nombre de un método del formulario. P.ej., supongamos el
evento OnClick de un botón:
1) Con un bloque de código sería:
::oButton1:OnClick := {| oSender | MsgInfo( oSender:cText, "Click" ) }
2) Y con el nombre de un método sería:
::oButton1:OnClick := "Button1Click"
Y después, tienes que tener el método Button1Click() en el formulario:
METHOD Button1Click( oSender ) CLASS TForm1
MsgInfo( oSender:cText, "Click" )
RETURN Nil
Cuando haces doble click en algún evento en el inspector de objetos, el IDE
siempre utiliza el segundo método. Las ventajas de éste sobre el primero son
fundamentalmente tres:
- El evento se ejecuta mucho más rápido
- Puedes escribir todo el código que quieras, sin las limitaciones propias
de los bloques de código, además de ser más legible.
- No tienes que acordarte de los parámetros que recibe, ya que el IDE te
crea el método automáticamente con todos los parámetros que recibe ese
evento.
Y la única restricción de este método es que el método que indiques tiene
que ser necesariamente un método del formulario.
En el fichero xailerdocintroduccion.txt tienes una explicación más
detallada del sistema de eventos de Xailer.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9443
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

seleccionar datos sql

Mensaje por ignacio »

Fredy
1)
>> ::odataset:cSelect:= "select * ....
En este caso el DataSet esta creado, y su funcionamiento sería algo así:
WITH OBJECT oDSet := TOdbcDataSet():New( oDSource )
: cSelect := "select * ..."
:lOpened := .t.
END WITH
>> ::odatasource:Query("select *...
En este segundo caso el el DataSource el encargado de crear un nuevo
Dataset:
WITH OBJECT oDSource:Query( "select * ..." )
:lOpened := .t.
END WITH
2)
Los 'process' no son más que una etiqueta para identificar a los DataSets
que tienen algo que ver entre si, para poder tratarlos como una unidad. Es
muy normal cuando se hace software de gestión que en un 'proceso' se abra
más de un fichero, y si alguno de ellos no puede abrirse el resto de tablas
debe cerrarse igualmente. Por último cuando el proceso se ha terminado es
muy normal cerrar todas las tablas que han intervenido en dicho proceso.
Su funcionamiento es muy simple, el DSource tiene un dato cProcess que
indica el nombre del proceso por defecto que tendrán todos los datasets que
se creen a través de dicho DSource. Para cambiar de nombre de proceso para
futuras aperturas no tiene más que llamar al método NewProcess( cProc ) el
DSource que realmente lo único que hace es cambiar el nombre del proceso por
defecto. También si lo desea puede especificar el nombre del proceso en la
creación del DSet ya que es el segundo parametro de su constructor New(
oDSource, cProcess ). A partir de entonces del DSource tiene metodos para
hacer operaciones en bloque en todos los datasets con el mismo nombre de
proceso que son:
- OpenProcess( cProcess ) que abre todas los DSet de dicho proceso
- CloseProcess( cProcess ) que cierra odas los DSet de dicho proceso
- DelProcess( cProcess ) o EndProcess( cProcess ) que destruye los DSet de
dicho proceso
- GetDataSet( cName, cProcess ) que devuelve el DSet de nombre cName
incluido en el proceso cProcess
En cualquier caso el uso de procesos es opcional y no es necesario que lo
asigne en forma alguna para funcionar con los DataControls.
3.-
Veo que ya te lo ha explicado José, espero que te haya quedado claro.
Un saludo,
"Fredy" <fredy@airtel.net> escribió en el mensaje
news:[email=MPG.1c91474a8c0042419896aa@news.ozs.com...]MPG.1c91474a8c0042419896aa@news.ozs.com...[/email]
Ignacio,
1.-
Partiendo de vuestro ejemplo ODBCData2, imagina que quiero poner un
Tedit y un botón, de tal manera que al introducir un dato en el edit y
pulsar el botón me filtre el dataset y me muestre sólo los registros que
empiecen con ese dato.
¿Qué haría?
::odataset:cSelect:= "select * ....
::odatasource:Query("select *...
¿puedes poner un trozo de un ejemplo?
2.-
Puedes explicar un poco más lo de los Proccess
3.-
Porqué
:OnComplete := {|| ::UpdLabel() }
y no
:OnComplete := ::UpdLabel()
Un saludico,
Fredy
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder