¿como bloqueo registros y tablas en MYSQL?

¿como bloqueo registros y tablas en MYSQL?

Postby JoseAlvarez » Sat Sep 10, 2016 4:06 pm

Saludos a todos.
Acabo de terminar mi primera aplicacion con el uso de MYSQL. Siempre habia trabajado con DBFs.
Reconozco que no me documenté bien antes de comenzar, lo cierto es que ya con la aplicación terminada, me doy cuenta que no funcionará en ambientes multiusuarios porque asumí, basado en información errónea que no confirme, que el mysql se encargaba de bloquear tablas y registros de forma automática y transparente para el programador. Enorme equivocación según aprendo ahora.
Dos preguntas: Podría alguien explicarme aunque sea en forma resumida el procedimiento para bloquear tanto tablas como registros en MYSQL? es decir, los equivalentes (si se puede decir) del net_use() y rec_lock() que se usan en DBFs? y en segundo lugar, de que manera puedo hacer una instalacion automatica de MYSQL ? me explico mejor: Para mis aplicaciones con DBF solo hacia mi instalador con INNOSETUP o cualquier otro similar y desde codigo creaba las carpetas y dbf necesarias por lo que la instalacion se podía hacer en cualquier parte por cualquier persona. En mysql al parecer la instalacion del motor debe ser obligatoriamente (hasta donde se) en forma presencial, es decir, hay que ir hasta la maquina del cliente para instalar el MYSQL y luego la aplicacion. Esto me parece totalmente ilógico e inoperante porque entonces, ¿como vender un producto que use mysql a otro pais por ejemplo, si tengo que ir hasta la computadora del cliente a instalarle el MYSQL? no creo que esto sea asi, debe haber alguna manera de que todo sea automatico. ¿Podría alguien arrojarme un poco de luz al respecto? Pido disculpas de antemano por la ignorancia tan grande sobre el tema de mysql.

Agradecido de antemano con cualquier ayuda que gentilmente puedan extenderme sobre los temas expuestos.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿como bloqueo registros y tablas en MYSQL?

Postby joseluisysturiz » Sat Sep 10, 2016 9:27 pm

Saludos colega, solo hay que BUSCAR en Mr.Google y leer un poco, tus inquietudes ya han pasado por las manos de otros y soluciones han creado, saludos... :shock:

Bloquear registros:

http://www.forosdelweb.com/f18/como-blo ... ql-280324/

http://www.clubdelphi.com/foros/archive ... 45009.html


MySql desatendido:

http://www.-.com/forum/viewtopic.php?t=8548

http://www.lawebdelprogramador.com/foro ... ndida.html

http://blog.hardmax.com.pe/2011/10/26/i ... aquetadas/
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: ¿como bloqueo registros y tablas en MYSQL?

Postby cnavarro » Sat Sep 10, 2016 10:19 pm

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: ¿como bloqueo registros y tablas en MYSQL?

Postby carlos vargas » Sat Sep 10, 2016 10:52 pm

Haber vamos por parte como dijo jack.

en mysql se pueden utilizar diferentes engines para manejo de tablas, las dos mas comunes son myisam (la cual es usada mayormente por tablas que serán usadas mas que todo para consulta, dado que un select en ese tipo de tablas vuela, lo parte negativa es que no permite de forma natural el bloqueo de registro, y requiere sus mañas para el bloqueo a tablas.), por otro lado el engine innodb es usado cuando es necesario manejar integridad en las tablas, este motor permite realizar transacciones que es la forma de proteger la grabación y seleción de la información, los que trabajamos creando aplicaciones de gestion usamos innodb.
por ejemplo en delphi es comum esto:

Code: Select all  Expand view

try
 oServer:BeginTransaction()
 oServer:Insert(....)
 oServer:Update(....)
 oServer:delete(...)
 oServer:Commit()
catch oError
 oServer:Rollback()
 MsgInfo( oServer:ErrorTxt() )
end
 

dado el codigo anterior, si ocurriera un error en el update, la insercion es anulada con la instruccion oServer:Rollback(), pero si no ocurriera un error, cuado se llega a oServer:Commit(), es cuando realmente la informacion es grabada correctamente en la tabla. todo esto debe ocurrir en fracciones de segundo, dado que durante el tiempo que toma entre el BeginTransaction a el commit o rollback, las filas de datos están protegidas, y no pueden ser modificadas por otro usuarios, incluso si realizáramos un select al cual le agregamos la instrucción update, las filas que nos regresa ese select estarían protegidas igualmente.
en el codigo anterior nosotros manejamos cuando se usan transacciones, en caso de no usar begintransaction, commit y rollback, aun asi cada operacion insert, update, delete esta protegida por transaccion, pero solo protegiendo la info que se modifique en cada instruccion, esto es lo que llamamos autocommit, pero no todo el bloque de las operaciones.

https://firebird21.wordpress.com/2013/06/22/transacciones-optimistas-y-transacciones-pesimistas/
este es un sitio que estoy seguro te ayudara, se que es sobre el motor firebirdsql pero todo es aplicable a mysql, ademas toda la información del sitio es algo de que todos deberiamos manejar.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: ¿como bloqueo registros y tablas en MYSQL?

Postby joseluisysturiz » Sat Sep 10, 2016 11:09 pm

JoseAlvarez wrote:Saludos a todos.
Acabo de terminar mi primera aplicacion con el uso de MYSQL. Siempre habia trabajado con DBFs.
Reconozco que no me documenté bien antes de comenzar, lo cierto es que ya con la aplicación terminada, me doy cuenta que no funcionará en ambientes multiusuarios porque asumí, basado en información errónea que no confirme, que el mysql se encargaba de bloquear tablas y registros de forma automática y transparente para el programador. Enorme equivocación según aprendo ahora.
Dos preguntas: Podría alguien explicarme aunque sea en forma resumida el procedimiento para bloquear tanto tablas como registros en MYSQL? es decir, los equivalentes (si se puede decir) del net_use() y rec_lock() que se usan en DBFs? y en segundo lugar, de que manera puedo hacer una instalacion automatica de MYSQL ? me explico mejor: Para mis aplicaciones con DBF solo hacia mi instalador con INNOSETUP o cualquier otro similar y desde codigo creaba las carpetas y dbf necesarias por lo que la instalacion se podía hacer en cualquier parte por cualquier persona. En mysql al parecer la instalacion del motor debe ser obligatoriamente (hasta donde se) en forma presencial, es decir, hay que ir hasta la maquina del cliente para instalar el MYSQL y luego la aplicacion. Esto me parece totalmente ilógico e inoperante porque entonces, ¿como vender un producto que use mysql a otro pais por ejemplo, si tengo que ir hasta la computadora del cliente a instalarle el MYSQL? no creo que esto sea asi, debe haber alguna manera de que todo sea automatico. ¿Podría alguien arrojarme un poco de luz al respecto? Pido disculpas de antemano por la ignorancia tan grande sobre el tema de mysql.

Agradecido de antemano con cualquier ayuda que gentilmente puedan extenderme sobre los temas expuestos.


Bueno man, alli tiene como decimos en mi pais....jabon pa que lave...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: ¿como bloqueo registros y tablas en MYSQL?

Postby JoseAlvarez » Sun Sep 11, 2016 2:54 pm

Ooookk. ! Una vez más, gracias a todos por su desinteresada ayuda. Como dice jose luis, a lavar ! :D
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 101 guests