Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
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
Responder Con Cita
  #2  
Antiguo 01-02-2010
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
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;
Responder Con Cita
  #3  
Antiguo 02-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
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.
Responder Con Cita
  #4  
Antiguo 02-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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
Responder Con Cita
  #5  
Antiguo 02-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
Gracias.

Use el segundo código, quedó perfecto.
Responder Con Cita
  #6  
Antiguo 02-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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

Última edición por Caral fecha: 02-02-2010 a las 02:40:52.
Responder Con Cita
  #7  
Antiguo 02-02-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
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.
__________________

Responder Con Cita
  #8  
Antiguo 02-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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:
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
__________________
Siempre Novato
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dónde conseguir firebird? efelix Conexión con bases de datos 4 12-01-2008 18:11:31
Donde esta Mis Documentos ? Coco_jac Varios 1 31-05-2005 22:01:27
Donde puedo conseguir un manual edwinsimon Redes 1 16-05-2005 21:12:00
Donde conseguir actualizaciones ADO jatorve Conexión con bases de datos 1 09-02-2005 00:50:41
Donde conseguir más funciones UDF??? burasu Firebird e Interbase 5 24-08-2004 13:05:41


La franja horaria es GMT +2. Ahora son las 04:43:53.


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
Copyright 1996-2007 Club Delphi