FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Capturar mensajes de error de SQL server
Hola a todos,
Sabeis como capturar los mensajes de error que devuelve sql server? Es decir, tengo desde delphi una Query: Query.close; Query.sql.clear; Query.sql.add('Update tabla set campo=valor where ......'); try Query.ExecSql except ---> y aqui es donde me gustaria recoger el error del gestor de base de datos para mostrarselo al usuario con una ventana de error propia. end; he visto que si no pongo el try except.. sale el error pero sale mu feo. ¿Sabes como obtener el error producido al ejecutar un Query.execSql ?? Gracias. David. |
#2
|
||||
|
||||
Código:
try query.ExecSQL; except on e:exception do begin ShowMessage(e.exception); //si comentas esta linea sólo verás tú mensaje. ShowMessage('Error al actualizar BD.'); end; end;
__________________
Saludos, Peter Investment Última edición por Investment fecha: 10-02-2005 a las 11:25:38. |
#3
|
||||
|
||||
Gracias, con ello he podido coger solo el trozo de error que me interesa.
Dado que el error pone: General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server] NO SE PUEDE BLA BLA BLA [Microsoft][ODBC SQL Server Driver][SQL Server]La petición COMMIT TRANSACTION no tiene la correspondiente BEGIN TRANSACTION. [Microsoft][ODBC SQL Server Driver][SQL Server]Se terminó la instrucción. me he creado la siguiente funcion: function MsgErrorDB(s:String):String; var aux:String; i,j:integer; begin i:= pos('[SQL Server]',s); i:= i+ length('[SQL Server]'); aux:= copy(s,i+1, length(s)); j:= pos('[Microsoft]',aux); if j=0 then j:=length(aux); if (i=0) or (j=0) then aux:= s else aux:=#13+copy(aux,1,j-1); result:=aux; end; que me devuelve el error: NO SE PUEDE BLA BLA BLA |
|
|
|