Intentando de nuevo el uso de SQL - Solucionado

Post Reply
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Intentando de nuevo el uso de SQL - Solucionado

Post by miarcod »

Hola de nuevo,

Debido a los problemas que me estoy encontrando en el uso de fichero dbf con indices cdx estoy volviendo a valorar el paso a sql. El caso es que dado que la aplicación es muy grande me cuesta mucho el cambio pues la lógica de acceso a los datos es distinta.
Ahora tengo la oportunidad de crear un nuevo módulo de gestión de tickets independiente que ya tengo programado con dbf/cdx pero estoy valorando la posibilidad de hacer la migración a sql con mariadb empezando por este módulo.
La pregunta es la siguiente

¿Existe algun problema con mezclar codigo con sql y con dbf? Los datos de los clientes estarían en dbf pero los datos de los tickets estarían en sql. No puedo pasar los clientes a sql porque el resto de los módulos deberían seguir trabajando con dbf.

Otro problema que al que no encuentro solución, es como abordo el tema de la concurrencia. Dado que el sistema muestra los tickets pendientes de gestion podría darse el caso de que un usuario iniciase la gestión de un ticket y otro usuario desde otro terminal intentase hacer lo mismo, con dbf/cdx lo tengo facil pues mientras el usuario accede al ticket lo bloqueo y el otro usuario no puede gestionarlo. He leido el tema de las transacciones pero si los dos usuarios acceden simultaneamente al mimso ticket el trabajo de uno de ellos es inutil.

¿Como se abordais la problematica de la concurrencia y el bloqueo de registros cuando estamos trabajando con sql?

Perdon por el rollazo y gracias de antemano.
Un saludo
Last edited by miarcod on Wed Nov 04, 2020 5:34 pm, edited 1 time in total.
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Intentando de nuevo el uso de SQL

Post by carlos vargas »

investiga Transacciones.
y sobre sobre select ... for update ....
no hay problemas con manejar ambas dbf y sql.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Intentando de nuevo el uso de SQL

Post by Armando »

Hola:

Tienes un correo?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Re: Intentando de nuevo el uso de SQL

Post by miarcod »

Hola
mi correo es
miarcod@gmail.com
Un saludo
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Intentando de nuevo el uso de SQL

Post by Rick Lipkin »

MS Access and MS Sql Server can use opportunistic locking .. Our Friend Rao has developed ADO Sql Wrappers that simplify the code below ...

Code: Select all

oRsEmp := TOleAuto():New( "ADODB.Recordset" )
oRsEmp:CursorType     := 1        // opendkeyset
oRsEmp:CursorLocation := 3        // local cache
oRsEmp:LockType       := 3        // lockoportunistic

cSQL := "SELECT * from [Employees] Order by [Employee]"

TRY
   oRsEmp:Open(cSQL,oConnect )
CATCH oErr
   MsgInfo( "Error in Opening EMPLOYEES table" )
   RETURN(.F.)
END TRY

 
Simplified Sql Wrappers from Rao in your FW folder

source\function\AdoFuncs.prg

Rick Lipkin
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Re: Intentando de nuevo el uso de SQL

Post by miarcod »

Hola de nuevo
Acabo de probar el codigo

Code: Select all

SELECT * from mi_tabla  WHERE id=25 FOR UPDATE
para cargar en un dialogo los datos que se quieren modificar. Hasta que el usuario libere este registro no se debería poder modificar.

Pero si desde otro terminal ejecuto la misma sentencia me deja hacerlo también.

¿Como hacer para evitar que un segundo usuario pueda acceder a la misma fila de la tabla en modo modificación?
Post Reply