Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2011
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
Parametros en Consultas

Hola a todos,

pues mi duda es la siguiente, con Delphi 7 podía hacer lo siguiente al filtrar una consulta mediante parametros:

Código Delphi [-]
  With tArticulos Do
    Begin
      If Active Then
        Active := FALSE;

      With DataSet Do
        Begin
          CommandText := 'select CODIGO, DESCRIPCION FROM ARTICULOS WHERE ( CODIGO = :AUXCODART ) ORDER BY CODIGO';

          Params.ParamByName( 'AUXCODART' ).AsString := sArticulo;
        End;

      Active := TRUE;
    End;

Cada vez que la aplicaba me devolvia el registro del artículo solicitado, pero ahora con Delphi 2010 me encuentro que siempre se me quedaba en el primer artículo solicitado, los siguientes no los encontraba, haciendo muchas pruebas me encuentro de que en la propiedad "Params" del tSimpleDataSet ( No en la de tSimpleDataSet.DataSet.Params si no que en tSimpleDataSet.Params ) en tiempo de ejecución se han creado estos parametros, por lo que la solución es eliminarlo cada vez que se aplica la consulta para que funcione, quedando así:

Código Delphi [-]
With tArticulos Do
    Begin
      If Active Then
        Active := FALSE;

      Params.Clear;  /* ESTO ES LO QUE AÑADO */
      With DataSet Do
        Begin
          CommandText := 'select CODIGO, DESCRIPCION FROM ARTICULOS WHERE ( CODIGO = :AUXCODART ) ORDER BY CODIGO';

          Params.ParamByName( 'AUXCODART' ).AsString := sArticulo;
        End;

      Active := TRUE;
    End;

Ya se que he encontrado el problema, en Delphi 7 no me lo hacía, ¿ pero alguien me puede decir si esto tiene solución ? ¿ A que es debido este cambio ?
Responder Con Cita
  #2  
Antiguo 25-01-2011
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
por que Params?

Saludos, tengo ya algun tiempo con delphi y mi pregunta es por que params?
no digo que no los uses si no que mi duda es que diferencia hay entre pasarle la variable directamente y usar params.

Bueno se que no ayuda mucho otra pregunta, pero es para aprovechar la tuya y bueno esa seria una solucion.

Código Delphi [-]
  With tArticulos Do
    Begin
      If Active Then
        Active := FALSE;

      With DataSet Do
        Begin
          CommandText := 'select CODIGO, DESCRIPCION FROM ARTICULOS WHERE ( CODIGO = '''+ sArticulo +''' ) ORDER BY CODIGO';
        End;

      Active := TRUE;
    End;
Responder Con Cita
  #3  
Antiguo 25-01-2011
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
Hola,

pues simplemente por definición de tipos, me queda mas claro a que tipo de datos estoy accediendo con los parametros y me evito los QuotedStr, etc...

Un saludo
Responder Con Cita
  #4  
Antiguo 25-01-2011
mcs mcs is offline
Miembro
 
Registrado: may 2007
Ubicación: Girona
Posts: 229
Poder: 18
mcs Va por buen camino
Cita:
Empezado por JosepGA Ver Mensaje
me evito los QuotedStr
Para mi esto es lo más importante. Ya no hago nunca esto de pegar variables en la cadena del query, sinó que siempre uso parámetros.

A parte de esto, teoricamente (por lo menos en Java funciona así) es más rápido cuando se hacen múltiples llamadas a una query, ya que la query ya está interpretada y compilada en el servidor SQL, y solo tiene que ir variando los parámetros.

Sobre tu duda, pues no lo sé. Yo lo que me he encontrado es que usando query's con SELECT, si no llamo al Query.Close antes de modificar los parámetros, no se actualizan los valores. Pero estoy usando los componentes IBDAC, y no es lo mismo que tu...

Saludos,

Marc
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
Consultas con párametros GerTorresM Varios 5 08-01-2011 22:44:24
Adicionar parámetros en consultas creadas por código GerTorresM OOP 3 02-08-2010 02:01:16
Automatizar seteo de parámetros para consultas rochi Conexión con bases de datos 2 11-10-2008 18:37:29
consultas con y sin parámetros. fjardelphi Conexión con bases de datos 4 06-05-2005 22:49:15
Parametros en consultas Walterdf Conexión con bases de datos 2 09-03-2005 21:31:30


La franja horaria es GMT +2. Ahora son las 14:40:07.


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