Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2011, 02:40
Avatar de elphaba
elphaba
 
Fecha de Ingreso: abril-2008
Ubicación: Ávila
Mensajes: 43
Antigüedad: 16 años
Puntos: 0
VB6 + MySQL = "El proveedor devolvió estado E_FAIL"

Hola muy buenas a tod@s

Estoy programando en VB6 usando BBDD Access
Verán quería comentarles un problema que estoy teniendo y no consigo dar con la solución.
El caso es el siguiente:
1.Realizo una select a una tabla de una BBDD de Access
Código:
Dim strSelect As String = "SELECT NIF, Domingo, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, " & _
                            " Traslado, HInicio, HFinal, " & _
                            "ROUND (ABS(((cdbl(HFinal-HInicio+Traslado)-int(HFinal-HInicio+Traslado))*24)),2) AS HrsTrabajadas, " & _
                            "ABS(CInt(Lunes+Martes+Miercoles+Jueves+Viernes+Sabado+Domingo)) AS DiasTrabajados, " & _
                            " (HrsTrabajadas * DiasTrabajados) as HorasTotales, SemanaHorario, Desde, Hasta " & _
                            " FROM Trabajan " & _
                            "WHERE  ((((Hasta)>=# " + FInicio + " # and Desde <=# " + FInicio + " #)Or ((Hasta) Is Null   and (Desde)<=# " + FInicio + " #)) or (Desde) between # " + FInicio + " # and # " + FFin + " #)" & _
                            " ORDER BY NIF, Hasta, Desde"
Donde FInicio y FFin son dos fechas que introduce el usuario desde la aplicación, con el formato dd/MM/yyyy

2.hago la conexión (la cual funciona, comprobado). El recorset (rsConsulta) que uso es de tipo ADODB.Recordset()
Código:
cmComando = New ADODB.Command()
        With cmComando
            .ActiveConnection = conConexion
            .CommandText = strSelect
            .CommandType = ADODB.CommandTypeEnum.adCmdText
        End With

        With rsConsulta
            .CursorType = ADODB.CursorTypeEnum.adOpenStatic
            .LockType = ADODB.LockTypeEnum.adLockReadOnly
        End With

        rsConsulta.Source = cmComando
3. Intento recorrer el recordset
Código:
If rsConsulta.EOF And rsConsulta.BOF Then
            'La respuesta es vacía
            ReDim sValores(0, rsConsulta.Fields.Count - 1)
        Else
            rsConsulta.MoveLast()
            rsConsulta.MoveFirst()  <-- Es en este punto es donde me aparece el siguiente mensaje de error
             ......

4. Error que me aparece
Código:
No se controló COMException
El proveedor de datos u otro servicio devolvió un estado E_FAIL
5. Lo raro de todo esto es que, cuando el usuario introduce fechas hasta febrero de 2011
es decir
FInicio: 01/01/2010 (por ejemplo)
FFin: 30/02/2011
El programa funciona a la perfección y me saca el listado que está programado
Pero el problema viene cuando el usuario introduce fechas comprendidas entre Marzo/2011 en adelante.
He revisado las fechas de la BBDD y es correcto, al menos no he visto ningun dato raro en los campos fecha; también he realizado
la consulta desde access y nada, no sé muy bien por donde tirar para poder resolver el error.

Muchas gracoas a todos.
Saludos!!