none
Problema con Consulta RRS feed

  • Pregunta

  • Hola amigos quiero hacer una consulta a una tabla de vfp desde C# usando oleDb

    la consulta es la siguiente

     cConsulta = @"SELECT Numdoc as Numero,Fechemis As Fecha ,Concepto, Sum(debe) as Debitos,sum(haber) as Creditos from wmdato
                                  where Fechemis BETWEEN ? and ? 
                                  group by Numdoc 
                                  Order By Numdoc";

    el problema es que si hago uso de odbc no me dan ningun error pero si hago uso de OleDb me da error por lo que en el group by no incluyo el resto de campos, la pregunta es proque con odbc no me da ese error cual me recomiendan usar.
    viernes, 23 de agosto de 2013 23:08

Respuestas

  • He visto en otros foros que si ejecutas

    'set engine behavior 70' desde tu conexión oledb Justo después de abrirla te funciona como lo que indicascon odbc


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    • Editado Sergio Parra sábado, 24 de agosto de 2013 0:21
    • Marcado como respuesta Pcardoza sábado, 24 de agosto de 2013 14:07
    sábado, 24 de agosto de 2013 0:21

Todas las respuestas

  • Puedes ser más especifico? Que mensaje de error te devuelve la excepcion? Cuando se provoca dicha excepción? Gracias

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 23 de agosto de 2013 23:33
  • Que versión de sistema operativo tienes? De 32 o 64 bit? Porque según tengo entendido no hay driver oledb de 64 bit para vfp databases. Puedes descargar Microsoft OLE DB Provider for Visual FoxPro 9.0

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 23 de agosto de 2013 23:37
  • Tengo W7 X64 pero yo uso OLeDb en otras consultas y no me da problemas.

    si uso OdbcConections uso la cadena:

    Conexiondbc = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=No;SourceDB=" + System.IO.Path.GetDirectoryName(cRuta) + ";"; //ODBC

    si uso OledbConectiosn uso:

     Conexiondbc = "Provider=VFPOLEDB.1;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=No;Data Source=" + System.IO.Path.GetDirectoryName(cRuta); 

    pero lo que me inquieto es que si uso Odbc la consulta se ejecuta bien pero al cambiarla a Oledb que segun es mas rapido me da Error :

    SQL: GROUP BY Clause is missing or invalid.

    pero si en Goup By agrego todos los campos que seleccione no da el error.

    Ejemplo:

    SELECT Valor1,Valor2,Valor3,sum(edad) as edad from table Group By Valor1

    usando Odbc Ejecuta bien con Oledb da Error

    viernes, 23 de agosto de 2013 23:55
  • Es que el group by lo tienes mal...debrs definirlo con todos los campos que no estén en una función de agregado. En tu caso

    GROUP BY Numdoc,Fechemis, Concepto


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    sábado, 24 de agosto de 2013 0:03
  • Aunque no te de error cuando consultas por ODBC, tu consulta no es correcta. Verifica con datos y lo veras

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    sábado, 24 de agosto de 2013 0:19
  • He visto en otros foros que si ejecutas

    'set engine behavior 70' desde tu conexión oledb Justo después de abrirla te funciona como lo que indicascon odbc


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    • Editado Sergio Parra sábado, 24 de agosto de 2013 0:21
    • Marcado como respuesta Pcardoza sábado, 24 de agosto de 2013 14:07
    sábado, 24 de agosto de 2013 0:21