FoxPro/Visual FoxPro - bindevent y cursor adapter

   
Vista:

bindevent y cursor adapter

Publicado por ramon morales (47 intervenciones) el 31/08/2008 00:51:21
funciona bindevents() con objetos de la clase cursoradapter?
el siguiente programa falla con error error 2089 <the beforeupdate event has failed>


local ca as cursoradapter,loconn,lsconn
CLEAR
set multilocks on
CLOSE DATABASES ALL
lsconn=[Driver={Sql Server};Server=(local)...]
loconn = sqlstringconnect(lsconn)
? loconn
ca=CREATEOBJECT('cursoradapter')
caevents=CREATEOBJECT('mycursoradapterevents')
ca.BufferModeOverride=5
ca.DataSourceType="ODBC"
ca.DataSource = loconn
ca.SelectCmd = [select * from embarcad]
ca.Alias='crstempo'
ca.CursorFill()
UPDATE crstempo SET usuario=usuario+1
ca.UpdateCmd=fsgenerateupdatecmd(...
BINDEVENT(ca,'beforeupdate',caevents,'fvbeforeupdate')
IF !TABLEUPDATE(.t.)
AERROR(laerror)
DISPLAY MEMORY LIKE laerror
***laerror(1,1)=2089 ....
endif
....

SQLDISCONNECT(loconn)
RETURN



DEFINE CLASS mycursoradapterevents as custom
pi=0

PROCEDURE fvbeforeupdate
LPARAMETERS pcfldstate,plforce,pnupdatetype,pcupdateinsertcmd, pcdeletecmd
*replace grupo WITH IIF((this.pi%2)=1,'5','6')
*IF ATC('.c_movims',pcupdateinsertcmd)>0
* pcupdateinsertcmd=STRTRAN(pcupdateinsertcmd,'.c_movims','.c_movims+1',1,1,1)
* pcupdateinsertcmd=STRTRAN(pcupdateinsertcmd,'where','where c_movims=? OLDVAL("c_movims","'+this.alias+'") and ',1,1,1)
*ENDIF
*this.pi=this.pi+1
*IF this.pi=1
* ? pcupdateinsertcmd
*ENDIF

ENDDEFINE
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder