Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como averiguar la cadena de instruccion SQL dentro de una aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=72957)

oscarac 22-03-2011 16:31:39

como averiguar la cadena de instruccion SQL dentro de una aplicacion
 
buenos dias

dentro de mis labores mi unidad esta realizando una auditoria a un ERP, tengo entendido que el MSSQL Server posee la caracteristica de "capturar" la cadena con los comandos del SQL y las muestra en una grilla

el Personal de TI (celoso o cauteloso no lo se) no nos quiere instalar esa caracteristica....

la pregunta... existe algun otro programa que pueda darme lo que necesito?

gracias por la atencion

rgstuamigo 22-03-2011 18:25:01

Si no me equivoco MS SQL server tiene y crea los llamados registros de transacciones, pero no sé si te servirá para lo que pretendes..:rolleyes:
La opcion que veo es que uses un componente similar o igual al TZSQLMonitor que tienen los componentes Zeos , o similar al TIBSQLMonitor de la pestaña "InterBase" de la paleta de componentes de Delphi; ya que tales componentes monitorean todas las sentencias SQL enviadas al servidor, e inclusive te lo guardan en un archivo...;); lógicamente eso dependerá de qué componentes estés utilizando para conectarte a MS sql server....:rolleyes:
Sino me equivoco tambien existen programas(herramientas,software) externos que pueden monitoriar las sentencias SQL enviadas al servidor de base de datos...;)
Espero te sea de utilidad...
Saludos...:)

Al González 22-03-2011 18:55:05

Cita:

Empezado por rgstuamigo (Mensaje 394278)
[...] eso dependerá de qué componentes estés utilizando para conectarte a MS sql server

Me uno a este comentario de rgstuamigo, preguntando ¿qué componentes de datos estás usando?

oscarac 22-03-2011 19:20:12

Utilizo ADO para conectarme

Al González 22-03-2011 20:00:45

No lo he probado, pero parece que la solución desde Delphi sería utilizar el evento OnWillExecute del componente conexión (TADOConnection):

Código Delphi [-]
procedure TForm1.ADOConnection1WillExecute(Connection: TADOConnection;
  var CommandText: WideString; var CursorType: TCursorType;
  var LockType: TADOLockType; var CommandType: TCommandType;
  var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
  const Command: _Command; const Recordset: _Recordset);
begin
  ShowMessage ('La sentencia es:'#13#10 + CommandText);
end;

Claro, seguramente sólo te funcionará con las consultas que hagas (directa o indirectamente) a través de ese objeto conexión.

¿Necesitas monitorear incluso lo que se haga desde otras aplicaciones?

Chris 22-03-2011 20:02:49

Cita:

Empezado por oscarac (Mensaje 394262)
el Personal de TI (celoso o cauteloso no lo se) no nos quiere instalar esa caracteristica....

Nunca he trabajado con MS SQL, pero por lo que dices habrá una funcionalidad que permita hacer lo que deseas. El problema es que el IT no la quiere instalar, puedes ponerle queja a tu jefe que sería la solución más sencilla ;)

Por otro lado, instalar algún monitor en tu aplicación solo servirá para monitorear las sentencias SQL que sean ejecutadas desde tu aplicación. En el registro no aparecerán sentencias que sean ejecutadas por medio de alguna otra herramienta o controlador. Debido a este problema no estarías haciendo una auditoria completa. Además otro problema que tendrías con ponerle un monitor a tu aplicación es que el sistema global se verá penalizado en su rendimiento.

Saludos!

ContraVeneno 22-03-2011 23:14:28

MS SQL Server tiene una aplicación que se llama "SQL Profiler", tiene todas las herramientas que necesitas para ver las instrucciones que se ejecutan en la base de datos.

cualquier instalación completa del SQL server vendrá con esta herramientas. Si te puedes conectar a la base de datos con el Query Analizer, puedes usar el Profiler. Y dado que este corre directamente en la base de datos, no importa que programa esté ejecutándose, siempre mostrará las instrucciones que se ejecuten, salvo algunas palabras clave que tendrías que configurar para que también se muestren, (por ejemplo, si la palabra "password" aparece en la consulta, el profiler no te mostrará dicha consulta, a menos que le configures y le otorgues permisos para hacerlo).

Si la gente de IT no te lo quiere instalar, desde ahí puedes determinar que algo están haciendo mal y debes de decir que no puedes hacer tu trabajo si no te dan las herramientas que necesitas.


La franja horaria es GMT +2. Ahora son las 23:39:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi