by Ramon Paredes » Tue Feb 05, 2008 10:20 pm
Sjingo :
Te muestro el codigo , como comente las altas, bien todo, las bajas, bien todo pero las modificaciones o ediciones ahi salta el error que mencione en mi primer post,
hasta puse un msgalert para que me mostrara en ese momento los campos los valores y la longitudes y todo esta ok
agardezco cualquier sugerencia al respecto como ven es ado puro no uso adordd
//=====================
FUNCTION PRUEBA()
//=====================
Local oDlg,oBrw,SiNuevo := .f.
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
PRIVATE oRecordset := TOLEAUTO():New("adodb.recordset")
oConexionAdo:Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1 ; DATABASE=Personal1; UID=root; PWD=1234")
oRecordSet:LockType := adLockOptimistic
oRecordSet:CursorType := adOpenKeyset
oRecordSet:CursorLocation := adUseClient
oRecordSet:ActiveConnection(oConexionAdo)
oRecordSet:Source := "Select * from maestro"
oRecordSet:Open()
aCifra = oRecordset:Recordcount()
DEFINE DIALOG oDlg RESOURCE 78
REDEFINE LISTBOX oBrw FIELDS oRecordSet:Fields("Numero"):value,;
oRecordSet:Fields("Nombres"):value,;
oRecordSet:Fields("Apellido1"):value,;
oRecordSet:Fields("Apellido2"):value,;
oRecordSet:Fields("Tipo"):value,;
oRecordSet:Fields("Tip_Emp"):value;
HEADERS "Numero","Nombres","Apellido1","Apellido2","Tipo","Tip_Emp" ;
FIELDSIZES 80,150,120,120,60,100 ;
COLOR CLR_RED,CLR_WHITE ;
ID 108 OF oDlg
oBrw:aJustify ={.F.,.F.,.f.,.f.,.f.,.f.}
oBrw:bLogicLen = { || oRecordSet:RecordCount }
oBrw:bGoTop = { || oRecordSet:MoveFirst() }
oBrw:bGoBottom = { || oRecordSet:MoveLast() }
oBrw:bSkip = { | nSkip | Skipper( oRecordSet, nSkip ) }
oBrw:cAlias = "ARRAY"
REDEFINE BUTTON ID 102 of oDlg ACTION( AGREGO( .t., oBrw ) )
REDEFINE BUTTON ID 103 of oDlg ACTION( AGREGO( .f., oBrw ) )
REDEFINE BUTTON ID 104 of oDlg ACTION( BORRO( oBrw ) )
REDEFINE BUTTON ID 106 of oDlg ACTION( BUSCO() )
REDEFINE BUTTON ID 105 of oDlg ACTION( oDlg:End() )
ACTIVATE DIALOG oDlg CENTERED
oRecordSet:Close()
oConexionAdo:Close()
RETURN (.T.)
// oWndBrw:SetControl(oBrw)
STATIC FUNCTION SKIPPER( oRs, nSkip )
LOCAL nRec := oRs:AbsolutePosition
oRs:Move( nSkip )
IF oRs:EOF; oRs:MoveLast(); ENDIF
IF oRs:BOF; oRs:MoveFirst(); ENDIF
RETURN oRs:AbsolutePosition - nRec
Static Function RecordSetSkip(nSkip)
LOCAL nRec := oRecordSet:AbsolutePosition
oRecordSet:Move( nSkip )
IF oRecordSet:EOF; oRecordSet:MoveLast(); ENDIF
IF oRecordSet:BOF; oRecordSet:MoveFirst(); ENDIF
Return (oRecordSet:AbsolutePosition - nRec)
//========================================
STATIC FUNCTION AGREGO( Sinuevo, oBrw )
//========================================
Public oDlg2,mNumero,mNomb,mAp1,mAp2,mTipo,mDtipo,oNumero,oNomb,oAp1,oAp2,oTipo,oDtipo
if sinuevo = .t.
mNumero = space(5)
mNomb = space(25)
mAp1 = space(15)
mAp2 = space(12)
mTipo = space(1)
mDtipo = space(10)
else
mNumero = oRecordSet:Fields("Numero"):value
mNomb = oRecordSet:Fields("Nombres"):value
mAp1 = oRecordSet:Fields("Apellido1"):value
mAp2 = oRecordSet:Fields("Apellido2"):value
mTipo = oRecordSet:Fields("Tipo"):value
mDtipo = oRecordSet:Fields("Tip_Emp"):value
endif
DEFINE DIALOG oDlg2 RESOURCE 19
REDEFINE GET oNumero Var mNumero ID 101 of oDlg2
REDEFINE GET oNomb Var mNOmb ID 102 of oDlg2
REDEFINE GET oAp1 Var mAp1 ID 103 of oDlg2
REDEFINE GET oAp2 Var mAp2 ID 104 of oDlg2
REDEFINE GET oTipo Var mTipo ID 105 of oDlg2
REDEFINE GET oDtipo Var mDtipo ID 106 of oDlg2
REDEFINE BUTTON ID 107 of oDlg2 ACTION( GRABO1( SiNuevo, oBrw ),oDlg2:End() )
REDEFINE BUTTON ID 108 of oDlg2 ACTION( oDlg2:End(), oDlg2:End() )
ACTIVATE DIALOG oDlg2 CENTERED
RETURN
//=======================================
STATIC FUNCTION GRABO1( Sinuevo,oBrw)
//=======================================
IF SiNuevo = .t.
msgalert("aqui grabo")
oRecordSet:Addnew()
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
oRecordSet:Update()
else
msgalert("aqui edito")
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
MSGALERT("Campos a Mostrar : "+mNumero+str(len(mNumero))+" "+mNomb+str(len(mNomb))+" "+mAp1+str(len(mAP1))+" "+mAp2+str(len(mAp2))+" "+mTipo+str(len(mTipo))+" "+mDtipo+str(len(mDtipo)))
oRecordSet:Update()
endif
//oRecordSet:Update()
oRecordSet:Requery()
oBrw:Refresh()
MsgAlert("El RecordSet ha sido actualizado")
RETURN
//================================
STATIC FUNCTION BORRO( oBrw )
//================================
oRecordSet:Delete()
oRecordSet:Requery()
oBrw:Refresh()
RETURN
... Desde la Tierra de lagos y Volcanes......