Señores, desde hace varios dias he estado tratando de usar la libreria FoxyDb de Antonio Meza con la BD de Firebird, me conecto y consulto la BD por medio del siguiente codigo:
INICIO.PRG
*------------------------------------------------------------
CLEAR
SET DEFAULT TO "F:\VFP\FoxyDb - Librería de conexión a Servidores de Bases de Datos desde VFP (Antonio Meza)\PROBANDO"
Public oDb
oDb = NEWOBJECT("foxydb","foxydb.prg")
? oDb.Version
? oDb.test()
? oDb.Connect()
? oDb.engine_version()
? odb.sql("SET TRANSACTION READ ONLY")
?oDb.Sql("Select * from USUARIO","USUARIO")
browse
PUBLIC SW
SW=0
DO FORM PRUEBAS3.scx
*------------------------------------------------------------
Lo que no se es como pasar los datos (registro) a los cuadro de texto en el formulario o vicebersa, cuando quiera consultarlos o guardarlos en la base de datos. Este el el formulario que utilizo.
PRUEBAS3.SCX
*------------------------------------------------------------
PUBLIC ofrmpruebas
ofrmpruebas=NEWOBJECT("frmpruebas")
ofrmpruebas.Show
RETURN
**************************************************
*-- Form: frmpruebas (f:\vfp\foxydb - librería de conexión a servidores de bases de datos desde vfp (antonio meza)\probando\pruebas3.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 03/19/15 03:23:14 PM
*
DEFINE CLASS frmpruebas AS form
Height = 313
Width = 575
DoCreate = .T.
AutoCenter = .T.
Caption = "Probando FoxyDb - Librería de conexión a Servidores de Bases de Datos desde VFP (Antonio Meza)"
Closable = .F.
FontSize = 10
MaxButton = .F.
MinButton = .F.
Name = "FrmPRUEBAS"
ADD OBJECT txtidus AS textbox WITH ;
Enabled = .F., ;
Height = 23, ;
Left = 112, ;
TabIndex = 3, ;
Top = 12, ;
Width = 86, ;
Name = "txtIDUS"
ADD OBJECT txtnombres AS textbox WITH ;
Enabled = .F., ;
Format = "!A", ;
Height = 23, ;
InputMask = "", ;
Left = 101, ;
MaxLength = 30, ;
TabIndex = 5, ;
Top = 48, ;
Width = 420, ;
Name = "txtNOMBRES"
ADD OBJECT txtapellidos AS textbox WITH ;
Enabled = .F., ;
Format = "!A", ;
Height = 23, ;
InputMask = "", ;
Left = 109, ;
MaxLength = 30, ;
TabIndex = 6, ;
Top = 92, ;
Width = 411, ;
Name = "txtAPELLIDOS"
ADD OBJECT txtusuario AS textbox WITH ;
Enabled = .F., ;
Format = "!", ;
Height = 23, ;
Left = 100, ;
MaxLength = 10, ;
TabIndex = 7, ;
Top = 148, ;
Width = 100, ;
Name = "txtUSUARIO"
ADD OBJECT txtclave AS textbox WITH ;
Enabled = .F., ;
Format = "!", ;
Height = 23, ;
Left = 421, ;
MaxLength = 10, ;
TabIndex = 8, ;
Top = 150, ;
Width = 100, ;
Name = "txtCLAVE"
ADD OBJECT cmdnuevo AS commandbutton WITH ;
Top = 210, ;
Left = 18, ;
Height = 27, ;
Width = 84, ;
Caption = "\<NUEVO", ;
Enabled = .T., ;
TabIndex = 9, ;
Name = "cmdNUEVO"
ADD OBJECT cmdconsultar AS commandbutton WITH ;
Top = 210, ;
Left = 106, ;
Height = 27, ;
Width = 84, ;
Caption = "\<CONSULTAR", ;
Enabled = .T., ;
TabIndex = 10, ;
Name = "cmdCONSULTAR"
ADD OBJECT cmdmodificar AS commandbutton WITH ;
Top = 210, ;
Left = 194, ;
Height = 27, ;
Width = 84, ;
Caption = "\<MODIFICAR", ;
Enabled = .F., ;
TabIndex = 11, ;
Name = "cmdMODIFICAR"
ADD OBJECT cmdeliminar AS commandbutton WITH ;
Top = 210, ;
Left = 282, ;
Height = 27, ;
Width = 84, ;
Caption = "\<ELIMINAR", ;
Enabled = .F., ;
TabIndex = 12, ;
Name = "cmdELIMINAR"
ADD OBJECT cmdsalir AS commandbutton WITH ;
Top = 267, ;
Left = 245, ;
Height = 27, ;
Width = 84, ;
Caption = "\<SALIR", ;
TabIndex = 15, ;
Name = "cmdSALIR"
ADD OBJECT cmdguardar AS commandbutton WITH ;
Top = 210, ;
Left = 370, ;
Height = 27, ;
Width = 84, ;
Caption = "\<GUARDAR", ;
Enabled = .F., ;
TabIndex = 13, ;
Name = "cmdGUARDAR"
ADD OBJECT cmddeshacer AS commandbutton WITH ;
Top = 210, ;
Left = 458, ;
Height = 27, ;
Width = 84, ;
Caption = "DES\<HACER", ;
Enabled = .F., ;
TabIndex = 14, ;
Name = "cmdDESHACER"
ADD OBJECT txtcredencial AS textbox WITH ;
Enabled = .F., ;
Format = "K", ;
Height = 23, ;
Left = 398, ;
MaxLength = 8, ;
TabIndex = 4, ;
Top = 12, ;
Width = 122, ;
ForeColor = RGB(0,0,0), ;
Name = "txtCREDENCIAL"
ADD OBJECT lblidus AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "ID USUARIO:", ;
Enabled = .F., ;
Height = 17, ;
Left = 28, ;
Top = 15, ;
Width = 74, ;
TabIndex = 19, ;
Name = "lblIDUS"
ADD OBJECT lblcredencial AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "CREDENCIAL:", ;
Enabled = .F., ;
Height = 17, ;
Left = 305, ;
Top = 16, ;
Width = 83, ;
TabIndex = 20, ;
Name = "lblCREDENCIAL"
ADD OBJECT lblnombres AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "NOMBRES:", ;
Enabled = .F., ;
Height = 17, ;
Left = 28, ;
Top = 51, ;
Width = 65, ;
TabIndex = 21, ;
Name = "lblNOMBRES"
ADD OBJECT lblapellidos AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "APELLIDOS:", ;
Enabled = .F., ;
Height = 17, ;
Left = 28, ;
Top = 95, ;
Width = 71, ;
TabIndex = 22, ;
Name = "lblAPELLIDOS"
ADD OBJECT lblusuario AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "USUARIO:", ;
Enabled = .F., ;
Height = 17, ;
Left = 28, ;
Top = 151, ;
Width = 59, ;
TabIndex = 23, ;
Name = "lblUSUARIO"
ADD OBJECT lblclave AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "CLAVE:", ;
Enabled = .F., ;
Height = 17, ;
Left = 365, ;
Top = 153, ;
Width = 43, ;
TabIndex = 24, ;
Name = "lblCLAVE"
ADD OBJECT line1 AS line WITH ;
Height = 0, ;
Left = 24, ;
Top = 132, ;
Width = 504, ;
Name = "Line1"
ADD OBJECT line2 AS line WITH ;
Height = 0, ;
Left = 25, ;
Top = 184, ;
Width = 504, ;
Name = "Line2"
PROCEDURE Init
PUBLIC SW,cmdN,cmdC,cmdM,cmdE
SW=0
cmdN=0
cmdC=0
cmdM=0
cmdE=0
ENDPROC
PROCEDURE cmdnuevo.Click
IF SW=0
cmdN=1
THISFORM.lblCREDENCIAL.ENABLED=.T.
THISFORM.txtCREDENCIAL.ENABLED=.T.
THISFORM.lblNOMBRES.ENABLED=.T.
THISFORM.txtNOMBRES.ENABLED=.T.
THISFORM.lblAPELLIDOS.ENABLED=.T.
THISFORM.txtAPELLIDOS.ENABLED=.T.
THISFORM.lblUSUARIO.ENABLED=.T.
THISFORM.txtUSUARIO.ENABLED=.T.
THISFORM.lblCLAVE.ENABLED=.T.
THISFORM.txtCLAVE.ENABLED=.T.
THISFORM.cmdNUEVO.ENABLED=.F.
THISFORM.cmdCONSULTAR.ENABLED=.F.
THISFORM.cmdMODIFICAR.ENABLED=.F.
THISFORM.cmdELIMINAR.ENABLED=.F.
THISFORM.cmdGUARDAR.ENABLED=.T.
THISFORM.cmdDESHACER.ENABLED=.T.
THISFORM.cmdSALIR.ENABLED=.F.
THISFORM.txtCREDENCIAL.SETFOCUS
ENDIF
ENDPROC
PROCEDURE cmdconsultar.Click
*IF SW=0
THISFORM.lblCREDENCIAL.ENABLED=.T.
THISFORM.txtCREDENCIAL.ENABLED=.T.
THISFORM.lblNOMBRES.ENABLED=.F.
THISFORM.txtNOMBRES.ENABLED=.F.
THISFORM.lblAPELLIDOS.ENABLED=.F.
THISFORM.txtAPELLIDOS.ENABLED=.F.
THISFORM.lblUSUARIO.ENABLED=.F.
THISFORM.txtUSUARIO.ENABLED=.F.
THISFORM.lblCLAVE.ENABLED=.F.
THISFORM.txtCLAVE.ENABLED=.F.
THISFORM.cmdNUEVO.ENABLED=.F.
THISFORM.cmdCONSULTAR.ENABLED=.F.
THISFORM.cmdMODIFICAR.ENABLED=.F.
THISFORM.cmdELIMINAR.ENABLED=.F.
THISFORM.cmdGUARDAR.ENABLED=.F.
THISFORM.cmdDESHACER.ENABLED=.T.
THISFORM.cmdSALIR.ENABLED=.F.
THISFORM.txtCREDENCIAL.SETFOCUS
cmdC=1
*ENDIF
ENDPROC
PROCEDURE cmdmodificar.Click
cmdM=1
cmdC=0
*IF cmdC=1
* THISFORM.lblCREDENCIAL.ENABLED=.T.
* THISFORM.txtCREDENCIAL.ENABLED=.T.
THISFORM.lblNOMBRES.ENABLED=.T.
THISFORM.txtNOMBRES.ENABLED=.T.
* THISFORM.txtNOMBRES.DisabledBackColor=RGB(255,255,255)
THISFORM.lblAPELLIDOS.ENABLED=.T.
THISFORM.txtAPELLIDOS.ENABLED=.T.
* THISFORM.txtAPELLIDOS.DisabledBackColor=RGB(255,255,255)
THISFORM.lblUSUARIO.ENABLED=.T.
THISFORM.txtUSUARIO.ENABLED=.T.
* THISFORM.txtUSUARIO.DisabledBackColor=RGB(255,255,255)
THISFORM.lblCLAVE.ENABLED=.T.
THISFORM.txtCLAVE.ENABLED=.T.
* THISFORM.txtCLAVE.DisabledBackColor=RGB(255,255,255)
* THISFORM.cmdNUEVO.ENABLED=.F.
* THISFORM.cmdCONSULTAR.ENABLED=.F.
THISFORM.cmdMODIFICAR.ENABLED=.F.
THISFORM.cmdELIMINAR.ENABLED=.F.
THISFORM.cmdGUARDAR.ENABLED=.T.
* THISFORM.cmdDESHACER.ENABLED=.T.
* THISFORM.cmdSALIR.ENABLED=.F.
THISFORM.txtCREDENCIAL.SETFOCUS
*ENDIF
ENDPROC
PROCEDURE cmdeliminar.Click
cmdE=1
THISFORM.cmdMODIFICAR.ENABLED=.F.
THISFORM.cmdELIMINAR.ENABLED=.F.
THISFORM.cmdGUARDAR.ENABLED=.T.
nRespMens=MESSAGEBOX("Está seguro que desea eliminar este registro",4+32+256,"Advertencia")
IF nRespMens=6
* THISFORM.verificar
ELSE
THISFORM.cmdDESHACERR.Click
ENDIF
ENDPROC
PROCEDURE cmdsalir.Click
* Salir del programa
Thisform.Release
ENDPROC
PROCEDURE cmdguardar.Click
*THISFORM.verificar
ENDPROC
PROCEDURE cmddeshacer.Click
* Habilitar y deshabilitar botones y cuadros de texto
THISFORM.cmdDESHACER.ENABLED=.F.
THISFORM.lblCREDENCIAL.ENABLED=.F.
THISFORM.txtCREDENCIAL.VALUE=" "
THISFORM.txtCREDENCIAL.ENABLED=.F.
THISFORM.lblNOMBRES.ENABLED=.F.
THISFORM.txtNOMBRES.VALUE=" "
THISFORM.txtNOMBRES.ENABLED=.F.
THISFORM.lblAPELLIDOS.ENABLED=.F.
THISFORM.txtAPELLIDOS.VALUE=" "
THISFORM.txtAPELLIDOS.ENABLED=.F.
THISFORM.lblUSUARIO.ENABLED=.F.
THISFORM.txtUSUARIO.VALUE=" "
THISFORM.txtUSUARIO.ENABLED=.F.
THISFORM.lblCLAVE.ENABLED=.F.
THISFORM.txtCLAVE.VALUE=" "
THISFORM.txtCLAVE.ENABLED=.F.
THISFORM.cmdNUEVO.ENABLED=.T.
THISFORM.cmdCONSULTAR.ENABLED=.T.
THISFORM.cmdMODIFICAR.ENABLED=.F.
THISFORM.cmdELIMINAR.ENABLED=.F.
THISFORM.cmdGUARDAR.ENABLED=.F.
THISFORM.cmdDESHACER.ENABLED=.F.
**THISFORM.cmdSALIR.ENABLED=.T.
**THISFORM.cmdSALIR.SETFOCUS
THISFORM.cmdCONSULTAR.SETFOCUS
*IF cmdC=1
* THISFORM.lblCREDENCIAL.ENABLED=.T.
* THISFORM.txtCREDENCIAL.ENABLED=.T.
* THISFORM.lblNOMBRES.ENABLED=.T.
* THISFORM.txtNOMBRES.ENABLED=.F.
THISFORM.txtNOMBRES.DisabledBackColor=RGB(224,223,227)
* THISFORM.lblAPELLIDOS.ENABLED=.T.
* THISFORM.txtAPELLIDOS.ENABLED=.F.
THISFORM.txtAPELLIDOS.DisabledBackColor=RGB(224,223,227)
* THISFORM.lblUSUARIO.ENABLED=.T.
* THISFORM.txtUSUARIO.ENABLED=.F.
THISFORM.txtUSUARIO.DisabledBackColor=RGB(224,223,227)
* THISFORM.lblCLAVE.ENABLED=.T.
* THISFORM.txtCLAVE.ENABLED=.F.
THISFORM.txtCLAVE.DisabledBackColor=RGB(224,223,227)
* THISFORM.cmdNUEVO.ENABLED=.F.
* THISFORM.cmdCONSULTAR.ENABLED=.F.
* THISFORM.cmdMODIFICAR.ENABLED=.T.
* THISFORM.cmdELIMINAR.ENABLED=.T.
* THISFORM.cmdGUARDAR.ENABLED=.F.
* THISFORM.cmdDESHACER.ENABLED=.F.
* THISFORM.cmdSALIR.ENABLED=.F.
* THISFORM.txtCREDENCIAL.SETFOCUS
*ENDIF
SW=0
cmdN=0
cmdC=0
cmdM=0
cmdE=0
ENDPROC
PROCEDURE txtcredencial.LostFocus
THIS.VALUE = TRANSFORM(THIS.VALUE)
THIS.FORMAT = "KR"
THIS.INPUTMASK = "99.999.999"
THIS.INPUTMASK = RIGHT(THIS.INPUTMASK, LEN(THIS.VALUE) + ICASE(LEN(THIS.VALUE) > 6, 2, LEN(THIS.VALUE) > 3, 1, 0))
THIS.REFRESH()
IF cmdN=1 OR cmdC=1
IF THISFORM.txtCREDENCIAL.VALUE=" " OR THISFORM.txtCREDENCIAL.VALUE="0"
THISFORM.txtCREDENCIAL.VALUE=" "
* ENDIF
ELSE
IF cmdC=1
* THISFORM.btnDesconectar.Enabled=.F.
* THISFORM.lblCREDENCIAL.ENABLED=.T.
* THISFORM.txtCREDENCIAL.ENABLED=.T.
THISFORM.lblNOMBRES.ENABLED=.T.
THISFORM.txtNOMBRES.ENABLED=.F.
THISFORM.txtNOMBRES.DisabledBackColor=RGB(255,255,255)
THISFORM.lblAPELLIDOS.ENABLED=.T.
THISFORM.txtAPELLIDOS.ENABLED=.F.
THISFORM.txtAPELLIDOS.DisabledBackColor=RGB(255,255,255)
THISFORM.lblUSUARIO.ENABLED=.T.
THISFORM.txtUSUARIO.ENABLED=.F.
THISFORM.txtUSUARIO.DisabledBackColor=RGB(255,255,255)
THISFORM.lblCLAVE.ENABLED=.T.
THISFORM.txtCLAVE.ENABLED=.F.
THISFORM.txtCLAVE.DisabledBackColor=RGB(255,255,255)
* THISFORM.cmdNUEVO.ENABLED=.F.
* THISFORM.cmdCONSULTAR.ENABLED=.F.
THISFORM.cmdMODIFICAR.ENABLED=.T.
THISFORM.cmdELIMINAR.ENABLED=.T.
* THISFORM.cmdGUARDAR.ENABLED=.F.
* THISFORM.cmdDESHACER.ENABLED=.T.
* THISFORM.cmdSALIR.ENABLED=.F.
THISFORM.cmdDESHACER.SETFOCUS
ENDIF
ENDIF
ENDIF
ENDPROC
PROCEDURE txtcredencial.GotFocus
THIS.VALUE = VAL(THIS.VALUE)
THIS.INPUTMASK = "99,999,999"
ENDPROC
ENDDEFINE
*
*-- EndDefine: frmpruebas
**************************************************
Agradesco la ayuda y/o tips que me puedan dar para desplegar los datos (registro) de la BD a los cuadro de texto en el formulario, o cuando quiera guardarlos en la base de datos.
Gracias