PDA

Ver la Versión Completa : 2 en 1 . Desbloquear tabla , pasar a Interbase


ingel
15-07-2003, 15:26:07
Hola a todos ..
Necesito hacerles 2 consultas ...
'Creo' que mi sistema en delphi me esta bloqueando alguna tabla dejandola inaccesible para el resto ..en principio lo soluciono reiniciando el servicio de SQL ..lo cual implica que todos reinicien el sistema..quiero saber si puedo desbloquear una determinada tabla desde algun lado del enterprise manager del sql2000

2- es posible MIGRAR mi base de datos SQL con Store Proc , vistas y triggers , etc ...para que funcione en INTERBASE ?

Gracias
INGEL

guillotmarc
16-07-2003, 22:15:25
Hola

No me gustan las transacciones de SQL Server, justamente por esto. Aunque teoricamente al modificar un registro dentro de una transacción, solo debería bloquear el registro, la verdad es que (no si será por los bloqueos que se generan sobre los índices o porque razón) ese bloqueo te impide realizar consultas sobre la tabla.

Por eso hay que intentar hacer los transacciones lo más rapidas mejor. Es decir en lugar de iniciar la transacción en el momento de cargar un registro en un formulario, y esperar a finalizarla en el momento en que el usuario le de a aceptar los cambios. Es mejor no iniciar ninguna transacción al cargar los formularios, y iniciar una en el momento de guardar los cambios, para finalizarla acto seguido. De forma que la transacción solo haya durado unos milisegundos. Claro que si te interesa que cuando un usuario trabaja en un registro, este quede bloquead, tendrás que hacerlo de otra forma, no con las transacciones. Por ejemplo activando un campo en el registro para saber que está ocupado.

En todo caso no conozco ninguna forma de finalizar el bloqueo. Lo unico que puedes hacer es ir al Administrador Corporativo, ir a la carpeta de Administración, opción de Actividad Actual, y ver en la opción de Bloqueos por objeto, quien mantiene el bloqueo sobre la tabla. Entonces debes ir al Ordenador de ese usuario y finalizar la transacción (a malas, finalizando la sesión).

Aquí tienes un programa para pasar de SQL Server a Interbase/Firebird, aunque no lo he usado, me han dado muy buenas referencias de él.

http://sourceforge.net/projects/sql2gdb/

Aunque dificilmente podrá pasar triggers y procedimientos almacenados. Puesto que los triggers són bastante distintos (mucho mejores en Interbase), ya que se pueden llamar antes y después de la acción, y se ejecutan registro a registro, y no para toda la operación como en SQL Server. Asimismo la sintaxis de procedimientos almacenados es bastante distinta, aunque en Interbase no tienes tantos comandos y funciones disponibles, la sintaxis me gusta más que en SQL Server.

Saludos.