Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Cursor raro 03
Message
From
22/01/2003 23:28:21
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Other
Title:
Cursor raro 03
Miscellaneous
Thread ID:
00744596
Message ID:
00744596
Views:
38
* Disculpe y le Agradezco por la atencion a mi pregunta...

* PROPIEDAD DE FORMULARIO
* buffermode = 2 - OPTIMISTIC
* DataSession = 2 - PRIVATE
* Tablas en Datasession : USUARIOS,
* KEYS -- Esta es una tabla para manejar Proximo PK a
* tener por insertar para cada tabla pq .DBC de VFP5
* no provee por si el mecanismo de autoincremet fild para PK.

* Este es el codigo origina del Method "Modifica"

**** PREGUNTA !!!! **************************
* En la primera instancia modifico USRID: "UNO" a "UNOttt" Funciona Bien..
* Pero en la Segunda instancia al intentar modificar USRID : "UNOttt" a "UNO"
* va a encontrar con .. =MESSAGEBOX("ID Ya Existente ... Elija Otro ...")
* fijese donde esta marcado con *OJO* en el siguiente codigo fuente..
* con esto se puede inferir que el Cursor de Private DataSession Tiene problema.
* El mismo registro Modificado al averiguar con BROWSER en Public DataSession
* tiene correctamete modificado...
* Que Locuara ... Esto Ya me esta volviendo L O C O
* Que Cursor L O C O
* El mismo o parecido fenomeno me habia tenido con INSERT.
* AYUDEME

********************************************
LOCAL lcUID,lcNom , lcSql, lnCT, lnID, llError

SUSPEND


lcUID = ALLTRIM(THISFORM.txtUsrId.Value)
lcNom = ALLTRIM(THISFORM.txtNombre.Value)
lnID = THISFORM.lstUsuarios.ItemData(THISFORM.lstUsuarios.ListIndex)


lcSql = "SELECT USRID FROM USUARIOS WHERE USRID == " + "'" + lcUID + "'" + " INTO CURSOR TEMP"
&lcSql
SELECT TEMP
lnCT=RECCOUNT('TEMP')
USE

*OJO*
IF lnCT > 0
MESSAGEBOX("ID Ya Existente ... Elija Otro ...")
RETURN .F.
ENDIF


lcSql = "UPDATE USUARIOS SET USRID = " + "'" + lcUID + "'" ;
+ ", NOM = " + "'" + lcNom + "'" ;
+ " WHERE ID = " + STR(lnID )


BEGIN TRANSACTION

ON ERROR llError = .T.
&lcSql
IF llError
ROLLBACK
=MESSAGEBOX(MESSAGE())
ELSE
END TRANSACTION

WITH THISFORM
.lstUsuarios.List(.lstUsuarios.ListIndex) = lcUID + SPACE(4) + lcNom
.txtUSRID.Value = ""
.txtNombre.Value = ""
ENDWITH

ENDIF

ON ERROR
Reply
Map
View

Click here to load this message in the networking platform