Consulta y muestra de Datos en un EditBox

107 views
Skip to first unread message

William López Jiménez

unread,
Aug 8, 2017, 3:38:32 PM8/8/17
to Comunidad de Visual Foxpro en Español
Estimados buenas tardes, una ayuda por favor ..

Tengo el siguiente código y pues solo me dice que la Variable DETALLADO no se encuentra ...


Lo que pretendo hacer es hacer una consulta y que esta se visualizen en otro formulario en un EditBox.

******************************
********** Selecciona Empresa
        lcCadena = "SELECT empresa_id FROM men where seleccion=.t."
        SQLEXEC(nHandle,lcCadena,"
tempempresa")
       
        VAREMPRESA=tempempresa.empresa_id
        USE IN tempempresa

VARSTATUS=ALLTRIM(THISFORM.label6.Caption)       
VARSRV=ALLTRIM(THISFORM.label5.Caption )


Local lcSelect

TEXT TO lcSelect TEXTMERGE NOSHOW PRETEXT 15

    SELECT cl.contrato,cl.apellidop,cl.apellidom, cl.usuario ;
    FROM clientes As CL    ;
    WHERE (CL.status= ?m.VARSTATUS AND CL.tiposervic= ?m.VARSRV And CL.empresa_id = ?m.VAREMPRESA)    ;
    INTO CURSOR DETALLADO

ENDTEXT

THISFORMSET.form2.list1.rowsource = DETALLADO
THISFORMSET.form2.visible=.t.
thisformset.form2.list1.Refresh()


******************************

Me faltará algún detalle ?

Gracias ...

ZeRoberto

unread,
Aug 8, 2017, 3:53:48 PM8/8/17
to publicesvfoxpro
Que motor de base de datos usas? MySQL o tablas nativas

Si es tablas nativas tienes que poner esto asi

SELECT cl.contrato,cl.apellidop,cl.apellidom, cl.usuario ;
       FROM clientes As CL    ;
       WHERE (CL.status= m.VARSTATUS AND CL.tiposervic= m.VARSRV And CL.empresa_id =           ?.VAREMPRESA)    ;
       INTO CURSOR dbDetallado
THISFORMSET.form2.list1.rowsource = "dbDetallado"
THISFORMSET.form2.visible=.t.
thisformset.form2.list1.Refresh()


Saludos

Víctor Hugo Espínola Domínguez

unread,
Aug 8, 2017, 4:31:45 PM8/8/17
to publice...@googlegroups.com
THISFORMSET.form2.list1.rowsource = "DETALLADO"

Saludos,
Víctor.
Lambaré - Paraguay.

I.S.C. William

unread,
Aug 8, 2017, 4:54:01 PM8/8/17
to publice...@googlegroups.com
Gracias pro tu respuesta .. estoy usando el motor Mysql con ODBC

Use el código que me estas mostrando y me mostro un mensaje..

Error del programa
Incompatibilidad entre el tipo de operador y el tipo de operando.

y tambien .

Error del programa
No se encuentra la frase 'campo'.

Gracias...

I.S.C. William

unread,
Aug 8, 2017, 4:59:01 PM8/8/17
to publice...@googlegroups.com
Gracias por tu respuesta ...

Coloqué las comillas como mencionas y aparece el mesaje

Error del programa
No se encuentra la frase 'campo'.


Tengo esto ..

***********************************************
VARSTATUS=ALLTRIM(THISFORM.label6.Caption)
VARSRV=ALLTRIM(THISFORM.label5.Caption )

Local lcSelect

TEXT TO lcSelect TEXTMERGE NOSHOW PRETEXT 15

    SELECT cl.contrato,cl.apellidop,cl.apellidom, cl.usuario ;
    FROM clientes As CL    ;
    WHERE (CL.status= ?m.VARSTATUS AND CL.tiposervic= ?m.VARSRV And CL.empresa_id = ?m.VAREMPRESA)    ;
    INTO CURSOR DETALLADO

ENDTEXT

THISFORMSET.form2.list1.rowsource = "DETALLADO"
THISFORMSET.form2.visible=.t.
thisformset.form2.list1.Refresh()


***********************************************

Javier Bernal

unread,
Aug 8, 2017, 6:27:01 PM8/8/17
to Comunidad de Visual Foxpro en Español
mira revisa donde se crea el cursor o sea el directorio o carpeya

William López Jiménez

unread,
Aug 8, 2017, 8:10:12 PM8/8/17
to Comunidad de Visual Foxpro en Español
Gracias a los que me apoyaron en esta duda ... posteo la respuesta al que se llegó ..


******************************
***************
*********************************************


VARSTATUS=ALLTRIM(thisform.text1.Value)    && Valor Caracter   
VARSRV=ALLTRIM(thisform.text2.Value)    && Valor Numérico

ThisForm.list1.Clear        && Limpiamos el EditBox

nHandle = SQLCONN('MiBd','','')
***********************************************
*-Comprobamos la Conexión
***********************************************
IF nHandle > 0

&& Se declara Variable Local
Local lcSelect

&& Se genera la Consulta

TEXT TO lcSelect TEXTMERGE NOSHOW PRETEXT 15

    SELECT CL.contrato, CL.apellidop, CL.apellidom, CL.usuario
    FROM clientes As CL
    WHERE (status= ?m.VARSTATUS AND tiposervic= ?VAL(VARSRV))

ENDTEXT

&& Se guarda en Variable la consulta y se valida en caso de error

lnRet = SqlExec(nHandle, lcSelect, "Detallado")
if lnRet > 0
    THISFORm.list1.rowsource="Detallado"     && Muestro Resultados en EditBox

    thisform.list1.Refresh()
Else
    = Aerror(laError)
    MessageBox("ERROR " + laError[2] + Chr(13) + lcSelect)
Endif   
   
          
***********************************************
* Si no hay conexión se envía Mensaje de Error   
***********************************************   
ELSE   
    =MESSAGEBOX("Error al Conectar",16,"Atención")
    RETURN
ENDIF

*********************************************
*********************************************

Tenía un error de compativilidad .. usando los comando adecuados quedo resuelto. Muchas gracias ..
Reply all
Reply to author
Forward
0 new messages