Ver Mensaje Individual
  #2  
Antiguo 24-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Hola.

Lamentablemente no has indicado el motor de base de datos con el que trabajas. Los parámetros debiera "encontrarlos" ADO al asignar la sentencia SQL, por lo que no veo razón para hacer un AddParameter. Por otro lado, el mes y el año, no debieran ser un dateTime sino un Integer o SmallInt... no te parece??

Luego, tu motor debiera proveer alguna forma de obtener el mes y el año de una fecha. En firebird es la función extract, que se usa asi:

Código SQL [-]
Select *
 from t_fact_compra
 where extract(month from fech_factura) = :mes
   and extract(year from fech_factura) = :anio;

En cambio en Oracle podes valerte de las funciones to_number y to_char, asi:

Código SQL [-]
Select *
 from t_fact_compra
 where to_number(to_char(fech_factura, 'MM')) = :mes
   and to_number(to_char(fech_factura, 'YYYY')) = :anio;

Luego, he visto en menos de dos días a dos personas que primero asignan el valor de los parámetros y luego la sentencia SQL. Aunque ado podria soportarlo, segun la ayuda de la propiedad ParamCheck, me parece poco lógico hacerlo de esa forma.

Desde mi punto de vista es mas "sano" y "normal" asignar primero la sentencia SQL, de donde el motor extraerá los nombres de los parámetros, y luego asignar los valores a estos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita