Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo se usa el componente Query de delphi? (https://www.clubdelphi.com/foros/showthread.php?t=71576)

Master23 29-12-2010 03:37:53

¿Cómo se usa el componente Query de delphi?
 
Quiero saber cómo se usa este componente por que aveces veo que algunas personas realizan la consulta y luego ejecutan un execsql o algo así y otros usan un open etc,las propiedades más comunmente usadas y como funcionan, gracias de antemano.

Delphius 29-12-2010 05:32:17

Hola Master23, creo que viendo los ejemplos que puedes encontrar en los centenares de hilos es más que suficiente como para entenderlos.

Te recuerdo además que si bien todos los Querys tienen el mismo principio básico y estructura común... existen diferencias sutiles (o no, depende del caso) entre un TQuery, TADOQuery, TIBQuery, entre otros.

Dependiendo de la suite de componentes que elijas hay algunas cosas varían, deberías aclarar con cual trabajas... ¿ADO? ¿DBE? ¿IBX? ¿Zeos? ¿DBX?

Por mi parte trataré de ser lo más directo y simple posible:

El método .Open se utiliza cuando la instrucción SQL a ejecutar debe regresar registros, como un SELECT. Por su parte .ExeqSql se emplea cuando la instrucción NO debe regresar registros, como un UPDATE o INSERT.

Todo dataset (incluídos) los diferentes querys tienen los siguientes métodos para desplazarse por los registros: First, Prior, Next y Last. Sus nombres son bastante descriptivos lo que hacen es colocarse en el primer, anterior, siguiente, y último registro respectivamente. Por ejemplo si quisiéramos movernos por todos los registros (desde el principio hacia el final) de una consulta SELECT haríamos algo como:

Código Delphi [-]
MiQuery.First;
while NOT MiQuery.Eof do
begin
  // lo que debamos hacer con el registro activo
  MiQuery.Next;
end;

Lo que se hizo es:
1) Movernos al principio
2) Trabajamos con el registro
3) Nos movemos al siguiente
Se repite 2 y 3 hasta haber llegado al final (el último)

Notarás que en el ejemplo en el ciclo while hay un .Eof. Los Querys tienen un método .Eof que significa "End of File". Básicamente este método regresa un valor true o false dependiendo si el registro activo es el último del dataset o no.

Después está el manejo de los campos. Esto se procede de igual manera que con cualquier componente Table.

Está la propiedad Fields[] que permite acceder a un campo por su índice:

Código Delphi [-]
MiQuery.Fields[5].AsFloat := 123.456789;
En el ejemplo, se pasa al campo 6to (está basado en índice 0. Es decir el primer campo corresponde a 0, el 2do es 1, etc) del registro activo el valor 123.456789.

También se puede acceder al campo mediante su nombre:

Código Delphi [-]
saldo := MiQuery.FieldByName('Saldo').AsFloat;

En este caso se está leyendo del registro activo el campo Saldo.

Si deseas saber la cantidad de campos tiene la propiedad FieldCount.

Después está el manejo de los parámetros. Esto se procede de forma similar que con los campos. En el caso de ADO para acceder a ellos se debe emplear la propiedad Parameters mientras que otras suites trabajan con Params.

Creo que este breve pero introductorio "tutorial" te puede dar pie para comenzar.

Déjame decirte antes de terminar, que te regañe un poco. Esto ya se dijo y se habló centenares de veces en el foro. Deberías buscar primero, o quizá buscar mejor.

Si luego tienes alguna duda puntual o problemas puedes exponerlos en los foros y de allí te vamos guiando. No esperes que se te hable de todo sobre un componente... eso es tarea personal ;) Te invito a que coloques el query en el form o datamodule y mientras esté "seleccionado" presiones F1. Eso bastará para acceder a la ayuda sobre el componente.

Todo lo que dije, y más está en la ayuda. Hay que leerla.

Saludos,

Casimiro Notevi 29-12-2010 05:47:07

Y para complementar el magnífico comentario de Delphius... aquí tienes un estupendo libro, es gratis, y está todo muy bien explicado.


La franja horaria es GMT +2. Ahora son las 18:39:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi