Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2015
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 17
sidneyb Va por buen camino
Problema con parametro en ADOQUERY

Buen dia estimados colegas, rato de no entrar por aca.

Tengo un pequeño problema que no encuentro ni pie ni cabeza, y la verdad me tiene a punto de cambiar el como lo hago, solo que no quisiera por que todo el codigo lo estoy manejando de la misma manera.

Utilizo XE6 y me da arroja que no ha encontrado el parametro señalado

Código Delphi [-]
 SQL := 'SELECT TipoListaPrecio ' +
         'FROM dbo.CAJAS ' +
         'WHERE Serie =1';

  Query.SQL.Clear;
  Query.SQL.Add(SQL);
//  Query.Parameters.ParamByName('p1').Value := DataRegistro;  // 'Query: Parameter not found'
//  SQL := Query.Parameters[0].Name;                                     // aca solo utilizo la variable SQL (string) para ver si me devuelve el nombre del parametro ubicado en esa posicion  pero me coloca ''
//  I := Query.Parameters.Count;                                             // aca utilizo la variable I (entero) para saber cuantos parametros cuenta, y me indica que hay uno, por lo tanto si lo ve, pero no me devuelve ni nombre por posicion ni nada

Podrian ver uds donde esta el error?

muchas gracias por anticipado

Última edición por Casimiro Notevi fecha: 02-12-2015 a las 16:32:10.
Responder Con Cita
  #2  
Antiguo 02-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola sidneyb.

De este modo tiene que funcionar:
Código Delphi [-]
...
var
  qy: TADOQuery;
begin
  qy := ADOQuery1; // (el nombre de tu componente ADOQuery)
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('SELECT TIPOLISTAPRECIO');
  qy.SQL.Add('FROM CAJAS');
  qy.SQL.Add('WHERE SERIE = :P1');
  qy.Parameters.ParamByName('P1').Value := DataRegistro; 
  qy.Open;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 02-12-2015 a las 16:29:44.
Responder Con Cita
  #3  
Antiguo 02-12-2015
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 22
Osorio Va por buen camino
Lo mas probable es que con un refresh te funcione correctamente.




Código Delphi [-]
SQL := 'SELECT TipoListaPrecio ' +
         'FROM dbo.CAJAS ' +
         'WHERE Serie =1';

  Query.SQL.Clear;
  Query.SQL.Add(SQL);



  Query.Parameters.Refresh;   //Luego de esta linea debe ir todo bien. 


//  Query.Parameters.ParamByName('p1').Value := DataRegistro;  // 'Query: Parameter not found'
//  SQL := Query.Parameters[0].Name;                                     // aca solo utilizo la variable SQL (string) para ver si me devuelve el nombre del parametro ubicado en esa posicion  pero me coloca ''
//  I := Query.Parameters.Count;
Responder Con Cita
  #4  
Antiguo 02-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Puede ser que no tengas la Connection asignada al Query
Responder Con Cita
  #5  
Antiguo 02-12-2015
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 17
sidneyb Va por buen camino
Antes que todo, muchas gracias a todos. muy atentos, muy oportunos.

les cuento, probe con cada una de las soluciones y ninguna funciono.

AgustinOrtu, me hizo ver el detalle que jamas pense ni espere, efectivamente, la variable string donde armo la conexion la estaba reinicializando con un dato vacio sin fijarme, y esa era ConnectionString que tenia, simplemente, nada. es por ellos que solo aqui me falla, por que esta conexion es a diferentes bases de datos.

muchas gracias a todo, problema solucionado
Responder Con Cita
  #6  
Antiguo 02-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Me ha valido unos buenos quebraderos de cabeza en su momento

Es por eso que nunca me gusto tener componentes sino mas bien metodos/funciones que retornen los Query/Command

Código Delphi [-]
function TDataModule.CreateQuery(AOwner: TComponent): TADOQuery;
begin
  Result := TADOQuery.Create(AOwner);
  Result.Connection := FAdoConnection;
end;

function TDataModule.CreateCommand(AOwner: TComponent): TADOCommand;
begin
  Result := TADOCommand.Create(AOwner);
  Result.Connection := FAdoConnection;
end;

Listo, nunca mas me olvide de asignar la propiedad Connection

En tu caso que usaste una ConnectionString distinta podrias agregar una version sobrecargada (overload)
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
Problema con ADOQuery damser Conexión con bases de datos 11 28-02-2011 16:55:42
problemas con pasaje de parametro string a un adoquery eltioalex Conexión con bases de datos 7 29-05-2010 03:56:14
Problema con AdoQuery marylobita Conexión con bases de datos 3 04-05-2006 19:17:54
Pasar Parametro A Compenente Adoquery JODELSA Conexión con bases de datos 1 04-09-2003 14:58:42
Problema ADOQuery GIVO Providers 1 29-08-2003 17:30:58


La franja horaria es GMT +2. Ahora son las 06:16:30.


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