Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Donde conseguir documentos Adoquery (https://www.clubdelphi.com/foros/showthread.php?t=66096)

aanil 01-02-2010 22:18:30

Donde conseguir documentos Adoquery
 
Hola a todos:

Quisiera que me indicara un link o donde se puede encontrar un documento bien didáctico o sea paso a paso, para aprender a usar parámetros con ADOQuery en Delphi 7.

He visto muchos ejemplos en la red, pero no logro entenderlos bien y como aplicarlos.

Otra cosa quiero darles las gracias por las ayudas recibidas.

AAnil

República Dominicana

droguerman 01-02-2010 22:40:25

Personalmente creo que la ayuda de Delphi es bastante buena en esa parte, empieza buscando la sección Working with ADO components.

aanil 02-02-2010 01:31:21

Hola :

A ver como me ayuda con este código, pues dice que es incorrecto que el parámetro esta mal definido.

Código SQL [-]
close;
datam.Query1.SQL.Add('Select * From 20092 ');
datam.Query1.SQL.Add('where matricula like :variable ');
datam.Query1.Parameters.ParamByName ('variable').value:='%'+Edit1.Text+'%';
datam.Query1.Open;

El programa corre, cuando le introduzco lo que espero encontrar dice:

"Objeto parámetro mal definido. Se proporcionó información incompleta o incoherente"

Es por eso que quiero conseguir un documento que explique claro los pasos para utilizar parámetros, pues lo que he visto o están en portugués o en inglés muy avanzados. Tengo el libro La Cara Oculta de Delphi 4, pero es muy profundo.

Caral 02-02-2010 02:08:46

Hola
Creo que lo que dice es que el valor no coincide, muy probablemente si no es string el valor da ese error.
Hay que saber que dato se va a sacar mas que el parametro, para mi esta bien como lo haces.
Si es string:
Código Delphi [-]
datam.Query1.SQL.Text:= 'Select * From 20092 Where matricula = :variable';
datam.Query1.Parameters[0].AsString:=  Edit1.Text;
datam.Query1.Open;

Si es integer prefiero el value:
Código Delphi [-]
datam.Query1.SQL.Text:= 'Select * From 20092 Where matricula = :variable';
datam.Query1.Parameters[0].Value:=  Edit1.Text;
datam.Query1.Open;
No me gusta el add.
Para usar un like, yo lo haría con un filtro, no con sql, de todos modos llamas a toda la tabla ( * ).
Saludos

aanil 02-02-2010 02:21:00

Gracias.

Use el segundo código, quedó perfecto.

Caral 02-02-2010 02:32:43

Hola
Ampliemos mas esto con un filtro para poder usar el like y que se vallan filtrando los datos del edit:
Dato String:
Código Delphi [-]
datam.Query1.SQL.Text:= 'Select * From 20092'; // leemos la tabla 
datam.Query1.Open;  // la abrimos 
datam.Query1,Filter:= 'TuCampo Like '''+Edit1.Text+ '*'''; // filtramos el edit 
datam.Query1,Filtered:=  True;

Dato Integer:
Código Delphi [-]
datam.Query1.SQL.Text:= 'Select * From 20092'; // leemos la tabla 
datam.Query1.Open;  // la abrimos 
datam.Query1,Filter:= 'TuCampo Like '+Edit1.Text; // filtramos el edit
datam.Query1,Filtered:=  True;

Saludos

ContraVeneno 02-02-2010 16:17:17

dejen meter mi cuchara, ya que considero que hay que tener en cuenta un detalle al momento de decidir si se quieren usar filtros en el query o si se quiere filtrar desde la consulta SQL.

Y es que para usar filtros, primero tendrías que cargar toda la tabla, lo cuál no es problema si tenemos pocos datos*; pero si sabemos que la cantidad es muy elevada, el uso de filtros no sería muy conveniente, por lo que la solución sería filtrar desde la consulta SQL utilzando un where... like... o where... etc.

Saludos.

* La definición de "pocos datos" dependerá de muchas cosas, ¿que tan poco es poco o que tan mucho es mucho? yo no se.

Caral 02-02-2010 17:00:25

Hola
Me puedo equivocar y seria interesante saberlo:
Si tengo esto:
Código SQL [-]
Select * from mitabla
Es exactamente lo mismo que tener:
Código Delphi [-]
Table1.open;
Si tengo esto:
Código SQL [-]
Select * form mitabla where micampo like :esto
Es lo mismo que tener:
Código Delphi [-]
Table1.filter:= micampo like :esto
En todos los caso abro la tabla y recorro todos los datos.
Diferente seria si especifico el campo que quiero filtrar:
Código SQL [-]
Select Micampo from mitable where micampo like :esto
Por eso dije:
Cita:

Para usar un like, yo lo haría con un filtro, no con sql, de todos modos llamas a toda la tabla ( * ).
Me equivoco?.
Saludos


La franja horaria es GMT +2. Ahora son las 18:30:41.

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