Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > SQL
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 01/02/2010
aanil aanil is offline
Miembro
 
Join Date: Apr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
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
Reply With Quote
  #2  
Old 01/02/2010
droguerman's Avatar
droguerman droguerman is offline
Miembro
 
Join Date: Apr 2005
Location: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
Personalmente creo que la ayuda de Delphi es bastante buena en esa parte, empieza buscando la sección Working with ADO components.
__________________
self.free;
Reply With Quote
  #3  
Old 02/02/2010
aanil aanil is offline
Miembro
 
Join Date: Apr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
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.
Reply With Quote
  #4  
Old 02/02/2010
Caral's Avatar
[Caral] Caral is offline
Miembro Premium
 
Join Date: Aug 2006
Posts: 7,659
Poder: 28
Caral Va por buen camino
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
__________________
Siempre Novato
Reply With Quote
  #5  
Old 02/02/2010
aanil aanil is offline
Miembro
 
Join Date: Apr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Gracias.

Use el segundo código, quedó perfecto.
Reply With Quote
  #6  
Old 02/02/2010
Caral's Avatar
[Caral] Caral is offline
Miembro Premium
 
Join Date: Aug 2006
Posts: 7,659
Poder: 28
Caral Va por buen camino
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
__________________
Siempre Novato

Last edited by Caral : 02/02/2010 at 02:40.
Reply With Quote
  #7  
Old 02/02/2010
ContraVeneno's Avatar
ContraVeneno ContraVeneno is offline
Miembro
 
Join Date: May 2005
Location: Torreón, México
Posts: 4,740
Poder: 26
ContraVeneno Va por buen camino
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.
__________________

Reply With Quote
  #8  
Old 02/02/2010
Caral's Avatar
[Caral] Caral is offline
Miembro Premium
 
Join Date: Aug 2006
Posts: 7,659
Poder: 28
Caral Va por buen camino
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:
Quote:
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
__________________
Siempre Novato
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Dónde conseguir firebird? efelix Conexión con bases de datos 4 12/01/2008 18:11
Donde esta Mis Documentos ? Coco_jac Varios 1 31/05/2005 22:01
Donde puedo conseguir un manual edwinsimon Redes 1 16/05/2005 21:12
Donde conseguir actualizaciones ADO jatorve Conexión con bases de datos 1 09/02/2005 00:50
Donde conseguir más funciones UDF??? burasu Firebird e Interbase 5 24/08/2004 13:05


All times are GMT +2. The time now is 21:10.


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