Una de RecordSet SOLUCIONADO

Post Reply
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Una de RecordSet SOLUCIONADO

Post by Pedro »

Hola a todos
Hace ya mucho tiempo que no vengo por aqui, y estoy más perdido que un pinguino en el sahara. Bueno a lo que voy, que es a pediros ayuda.
Le hice a un amigo un programa con ADO y una BBDD Access, le funciona bien, no hay problemas, pero ahora me pide una modificación y,
he debido perder el tacto, porque intento hacer el recordset y no me lo trae, debe ser algo de cómo poner las comillas o los apóstrofes de la sentencia
porque en modo simple si me lo trae. Me explico : el usuario me ingresa dos fechas, entre las cuales debo traer el recordset, PEROOOO, también puede ingresar
en código de un proveedor entonces el recordset debe traer solo los registros entre las dos fechas y que sean de ese proveedor. No consigo sacarlo, si entre las dos
fechas, también el de un proveedor, pero las dos cosas no. Alguien me ilumina?
Asi es como lo hago :

Code: Select all

      cSource := "SELECT * FROM GASTOS WHERE CODIGO = "+cCodProv
      cSource += " AND FECHA >=" +cDatIni+" and FECHA <= "+cDatFin
      cSource += " ORDER BY FECHA"
las fechas vienen correctas y el código del proveedor también ya que esa sentencia si quito el proveedor me trae las fechas correctamente y si quito las fechas me trae el proveedor de forma correcta
pero las dos cosas no me las trae.
Luego me han pedido otra listado de esa misma tabla, pero aqui el pero aunque sea minúsculas es más grande que el anterior, porque lo único que cambia es que el codigo
que puede estar en tres campos de la tabla, digamos que hay un codigo_gasto_1, un codigo_gasto_2 y un codigo_gasto_3 , tres campos y el codigo que solicita, puede estar en cualquiera de los 3 campos.
¿Me tirais una mano a ver como puedo poner esas sentencias y que me traigan el RecordSet?

Agradecido a todos
Pedro
Last edited by Pedro on Sun Mar 01, 2015 12:17 pm, edited 1 time in total.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Una de RecordSet

Post by horacio »

Prueba así

Code: Select all

cSource := "SELECT * FROM GASTOS WHERE CODIGO = '"+cCodProv
      cSource += "' AND FECHA >='" +cDatIni+"' and FECHA <= '"+cDatFin
      cSource += "' ORDER BY FECHA"
Verifica que las fechas esten en formato 'AAAA-MM-DD'

Saludos
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Una de RecordSet

Post by Armando »

Pedro:

Te va un pequeño ejemplo:

Code: Select all

        oRsDlp:Source               := "SELECT " +;
                                                "* " +;
                                            "FROM " +;
                                                "DetLdp " +;
                                            "WHERE " +;
                                                "Det_Ldp = " + STR(anLdp[oHdr:LDP],2) + " " +;
                                            "AND " +;
                                                "Det_Pro = '" + oWrk:PRO + "'"
 
Observa cómo defino las variables cuando son numéricas,
"Det_Ldp = " + STR(anLdp[oHdr:LDP],2) + " " +;

Y cómo cuando son alfanuméricas
"Det_Pro = ' " + oWrk:PRO + " ' "

La diferencia son los apostrofes o comilla simple, además las fechas deben estar en formato
AAMMDD, puedes usar la función DTOS(dFecha) y por ser convertida en alfanumérica debe
ir entre apostrofes.
"Det_Fecha = '" + DTOS(oWrk:FECHA)+ "'"

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Una de RecordSet

Post by Pedro »

Gracias los dos, los apóstrofes era lo que tenia mal, no los colocaba correctamente
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Post Reply