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 17-12-2012
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Firebird, DBX, CommandText

Hola como estan?, tengo el siguiente codigo.

Código Delphi [-]
  CL.TQuery.Close;
  CL.TQuery.CommandText := 'SELECT (SUM(CTA.DEBE)-SUM(CTA.HABER)) AS SALDO FROM TCTACTE CTA ' +
  'WHERE TIPO_OPERACION <> ''X'' AND ID_VENTA IN (SELECT ID_VENTA FROM TVENTA WHERE ID_CLIENTE = :ID_CLIENTE)';
  CL.TQuery.Params.ParamByName('ID_CLIENTE').AsInteger := CL.TLCtaCteID_CLIENTE.AsInteger;
  CL.TQuery.Open;

El tema es el siguiente, tengo dos clientes cargados uno con id_cliente = 1 y otro con id_cliente = 2, bueno el tema es que la consulta funciona perfecto para el primer caso, para el segundo, no funciona. Las pruebas que hice fue, agregar un break point para ver el valor que se pasa por parametro, y el valor es el correcto, puse un sqlmonitor para ver la consulta generada, y el valor es ? asi que no se que puede estar sucediendo. Alguien puede darme una idea de que puede estar sucediendo. Como les digo, con el primer caso o sea con el id_cliente = 1 anda perfecto. Gracias.
Responder Con Cita
  #2  
Antiguo 17-12-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con los datos que das es imposible poder ayudarte, salvo alguien que le haya ocurrido exactamente lo mismo y recuerde qué era.
Responder Con Cita
  #3  
Antiguo 17-12-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por pablonill Ver Mensaje
Hola como estan?, tengo el siguiente codigo.
puse un sqlmonitor para ver la consulta generada, y el valor es ? asi que no se que puede estar sucediendo
Cuando uno arma una consulta y se la pasa al componente dataset tiene lugar un método llamado ParseSQL que lo que hace es determinar si hay parámetros. En caso de encontrarlos los reemplaza por ? e inmediatamente crea un TParam o TParamater (sólo lo usa ADO).
Es posible que en algún momento el componente no limpie bien los parámetros al momento de cerrar, o que a lo mejor en algún punto del programa estás liberando o cambiando algo en el parámetro sin darte cuenta antes (o al momento) de volver a ejecutar la consulta por segunda vez.

Sin más datos la tienes difícil. Por otro lado, ¿porqué CommandText? Hay otras formas de hacerlo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
Insercion Multiple CommandText y DataSnap pablonill Conexión con bases de datos 0 19-03-2012 14:31:00
Remote Error CommandText changes are not allowed Jere_84 Providers 1 04-01-2012 20:44:21
CommandText ve como parametros lo dos puntos juank1971 Conexión con bases de datos 0 03-03-2010 20:11:28
ayuda con AdoDataSet su CommandText y una functions jhcaboverde Varios 3 18-03-2009 17:38:13
CommandText: Duda Paulao Varios 4 12-08-2008 20:31:21


La franja horaria es GMT +2. Ahora son las 05:30:42.


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