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
Intentando de nuevo el uso de SQL - Solucionado
Intentando de nuevo el uso de SQL - Solucionado
Last edited by miarcod on Wed Nov 04, 2020 5:34 pm, edited 1 time in total.
- carlos vargas
- Posts: 1421
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Intentando de nuevo el uso de SQL
investiga Transacciones.
y sobre sobre select ... for update ....
no hay problemas con manejar ambas dbf y sql.
salu2
carlos vargas
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)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Re: Intentando de nuevo el uso de SQL
Hola:
Tienes un correo?
Saludos
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- 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
MS Access and MS Sql Server can use opportunistic locking .. Our Friend Rao has developed ADO Sql Wrappers that simplify the code below ...
Simplified Sql Wrappers from Rao in your FW folder
source\function\AdoFuncs.prg
Rick Lipkin
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
source\function\AdoFuncs.prg
Rick Lipkin
Re: Intentando de nuevo el uso de SQL
Hola de nuevo
Acabo de probar el codigo
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?
Acabo de probar el codigo
Code: Select all
SELECT * from mi_tabla WHERE id=25 FOR UPDATE
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?