Amigos del foro,
Tengo este programa de Altas, Bajas y Cambios y este browse con ADO , todo funciona OK, pero cuando le doy modificar y no hago nada oprimo el boton cancelar me manda error , si presiono escape para que salga sin modificar nada da el mismo error
pplication
===========
Path and name: C:\sist_sql\MUESTRA\MUESTRA.exe (32 bits)
Size: 2,147,840 bytes
Time from start: 0 hours 0 mins 9 secs
Error occurred at: 25/02/2008, 12:42:16
Error description: Error adodb.recordset/6 DISP_E_UNKNOWNNAME: MOVE
Args:
[ 1] = N -6
Stack Calls
===========
Called from: win32ole.prg => TOLEAUTO:MOVE(0)
Called from: muestra.prg => SKIPPER(463)
Called from: muestra.prg => (b)TABLAS(301)
Called from: WBROWSE.PRG => TWBROWSE:SKIP(0)
Called from: WBROWSE.PRG => TWBROWSE:PAINT(0)
Called from: WBROWSE.PRG => TWBROWSE:DISPLAY(0)
Called from: CONTROL.PRG => TWBROWSE:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: muestra.prg => TABLAS(400)
Called from: muestra.prg => (b)BUILDMENU(122)
Called from: MENU.PRG => TMENU:COMMAND(0)
Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)
Called from: muestra.prg => MAIN(102)
que podra ser, cualquier ayuda sera bienvenida,
Public oCon := TOLEAUTO():New("adodb.connection")
oCon:Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1 ; DATABASE=sistema; UID=root; PWD=1234")
PRIVATE oRs := TOLEAUTO():New("adodb.recordset")
Public dTipo[1],dNatural
dNatural :={"Deudora","Acreedora"}
PRIVATE oRs1 := TOLEAUTO():New("adodb.recordset")
oRs1:LockType := adLockOptimistic
oRs1:CursorType := adOpenKeyset
oRs1:CursorLocation := adUseClient
oRs1:ActiveConnection(oCon)
oRs1:Source := "Select * from tabla_eeff"
oRs1:Open()
dTipo[1] = oRs1:Fields("cod_eeff"):Value+"-"+oRs1:Fields("concepto"):Value
oRs1:Movenext()
do while !oRs1:eof()
AADD( dTipo, oRs1:Fields("cod_eeff"):Value+"-"+oRs1:Fields("concepto"):Value )
oRs1:MoveNext()
enddo
oRs1:Close()
PRIVATE oRs := TOLEAUTO():New("adodb.recordset")
oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenKeyset
oRs:CursorLocation := adUseClient
oRs:ActiveConnection(oCon)
oRs:Source := "Select * from catalogo"
oRs:Open()
Public oDlg, oFld
Public oBtnCancel
public oLbx,oBtn
DEFINE DIALOG oDlg RESOURCE 14
REDEFINE FOLDER oFld ID 110 OF oDlg ;
PROMPT "&Catalogo "," C&uentas ", " &Documentos "," &T/Cambios "," Tab&la EEFF "," &Firmas Aut." ;
DIALOGS 18 //,18,18,18,18,18
REDEFINE INFOBAR oInfoBar ID 100 GRADIENT;
BITMAP "WORKER.BMP" LEFT PROMPT "Tablas de Contabilidad" CENTER ;
COLOR CLR_WHITE TEXT "" LEFT COLOR CLR_YELLOW ;
OF oDlg UPDATE BORDER
REDEFINE LISTBOX oLbx FIELDS oRs:Fields("codigo"):Value, ;
oRs:Fields("nombre"):Value, ;
oRs:Fields("naturaleza"):Value, ;
oRs:Fields("eeff"):Value ,;
oRs:Fields("afectar"):Value ;
FIELDSIZES 100,250,100,250,50 ;
HEADERS "Codigo","Nombre de la Cuenta","Naturaleza","Ubic. EEFF","s/n" ;
COLOR CLR_HBLUE,CLR_WHITE ;
ID 108 of oFld:aDialogs[1]
oLbx:aJustify ={.F.,.F.,.f.,.f.,.f.}
oLbx:bLogicLen = { || oRs:RecordCount() }
oLbx:bGoTop = { || oRs:MoveFirst() }
oLbx:bGoBottom = { || oRs:MoveLast() }
oLbx:bSkip = { | nSkip | Skipper( oRs, nSkip ) }
oLbx:cAlias = "ARRAY"
REDEFINE BUTTON ID 102 OF oFld:aDialogs[1] ACTION( EditC1(.t.,oLbx ) ,oFld:aDialogs[1]:Refresh() )
REDEFINE BUTTON ID 103 OF oFld:aDialogs[1] ACTION( EditC1(.f.,oLbx ),oFld:aDialogs[1]:Refresh() )
REDEFINE BUTTON ID 104 OF oFld:aDialogs[1] ACTION( BorrO( oLbx ), oLbx:Refresh(),oFld:aDialogs[1]:Refresh() )
// REDEFINE BUTTON ID 106 OF oFld:aDialogs[1] ACTION( Busca1(), oLbx:Refresh(),oFld:aDialogs[1]:Refresh() )
REDEFINE BUTTON ID 105 OF oFld:aDialogs[1] ACTION ( oDlg:End() )
ACTIVATE DIALOG oDlg CENTERED
RETURN
//=================================
FUNCTION EditC1(SiNuevo, oLbx )
//=================================
Local oDlg, lSalvar := .f.
IF sinuevo = .t.
oRs:ADDNEW() // crea un nuevo registro en blanco
oRs:Fields("codigo"):value := SPACE(12)
oRs:Fields("nombre"):value := SPACE(45)
oRs:Fields("naturaleza"):value := SPACE(10)
oRs:Fields("eeff"):value := SPACE(50)
oRs:Fields("afectar"):value = .f.
ENDIF
LoadLibrary("BWCC32.DLL")
DEFINE BRUSH oBrush FILENAME "OSXBack.bmp"
DEFINE DIALOG oDlg RESOURCE 23 BRUSH oBrush TRANSPARENT
REDEFINE INFOBAR oInfoBar ID 100 GRADIENT;
BITMAP "otro.BMP" LEFT PROMPT "Catalogo de Cuentas Contables" CENTER ;
COLOR CLR_WHITE TEXT "" LEFT COLOR CLR_YELLOW ;
OF oDlg UPDATE BORDER
REDEFINE VIABITMAP oBitmap1 ID 150 FILE "WORKER.BMP" OF oDlg
REDEFINE GET oRs:Fields("codigo"):value ID 101 of oDlg
REDEFINE GET oRs:Fields("nombre"):value ID 102 of oDlg
REDEFINE COMBOBOX oRs:Fields("naturaleza"):value ID 103 of oDlg PROMPTS dNatural
REDEFINE COMBOBOX oRs:Fields("eeff"):value ID 104 of oDlg PROMPTS dTipo
REDEFINE CHECKBOX oRs:Fields("afectar"):value ID 105 of oDlg
REDEFINE BUTTON ID 106 OF oDlg action ( lSalvar := .T. , oDlg:End() )
REDEFINE BUTTON ID 107 OF oDlg ACTION ( lSalvar := .F. , oDlg:End() ) CANCEL
ACTIVATE DIALOG oDlg CENTERED
IF lSalvar
oRs:UPDATE()
IF !empty(oRs:Filter)
oRs:REQUERY()
ENDIF
ELSE
IF SiNuevo
oRs:DELETE()
oRs:REQUERY()
ENDIF
ENDIF
RETURN
//======================================
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 BORRO( oLbx )
//================================
oRs:Delete()
oRs:Requery()
oLbx:Refresh()
RETURN
Saludes desde Managua, Nicaragua
Ramon Paredes