FoxPro/Visual FoxPro - GRABAR un registro estaba lento

   
Vista:

GRABAR un registro estaba lento

Publicado por victor perez (137 intervenciones) el 07/03/2014 21:37:47
Buenas Tardes,

Hace unos meses consulte por una lentitud que había al grabar un registro en una de mis tablas en MYSQL.

Bueno, hoy encontré la posible causa de lo lento que era hacer el proceso, aun cuando lei y lei el código y no daba con la solución.

El código QUE PROVOCA EL CONFLICTO es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
If _Nuevo  **SI EL REGISTRO ES NUEVO
 
	   _existe=.T.
 
   _Doc= alltrim(STR(Val(wNum) + 1)) && Toma el Valor del Expediente que se está haciendo
 
	   Do while _existe=.t.  && LA SIGUIENTE RUTINA BUSCA SI EL # DE EXPEDIENTE EXISTE...
	     THISFORM.CONECTA
	      SQLEXEC(LNHANDLE,"SELECT * FROM CLINICA.PATIENT WHERE NUMERO=&_DOC","REXP")
              SQLCONNECT(LNHANDLE)
 
	      IF RECCOUNT() <> 0  && SI EL # DE EXPEDIENTE EXISTE, AGREGA +1 AL VALOR DE _DOC
                       _Doc= alltrim(STR(Val(_Doc) + 1))
 
	      ELSE
	               _existe=.f.    && SI EL # NO EXISTE, HACE LA VARIABLE FALSA Y SALE DE LA RUTINA.
	      EndIf
 
	      Loop
	   EndDo
 
   THISFORM.CONECTA
   SQLEXEC(LNHANDLE,"UPDATE CLINICA.EXPEDIENTE SET NUMERO=&_DOC ")
   SQLCONNECT(LNHANDLE)
 
ENDIF

Ahora, al eliminar el código todo funciona de maravillas, pero si en un mismo momento estamos grabando dos registros (uno en cada computadora) , tenemos la posibilidad de que se GRABE con el mismo Numero de Expediente...
Claro que la posibilidad es un tanto remota porque bastan segundos para que se grabe el proceso...

De todas formas, no entiendo por que esta rutina ponía tan lento el sistema.

Cualquier ayuda, gracias


Victor
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

GRABAR un registro estaba lento

Publicado por victor perez (137 intervenciones) el 07/03/2014 23:12:54
hOLA.

No se por que? Pero sustiui el &_DOC por ?_DOC y el sistema funciono a la perfeccion.

Todavía me cuesta trabajo saber cuando usar "?" y cuando "&" al ejecutar un comando MYSQL.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar