PDA

Ver la Versión Completa : Excepcion con ADO


SidedTermita
23-10-2007, 01:03:04
Hola, bueno mi unik duda es que no se donde puedo encontrar las excepciones del componente ADO de delphi si alguien sabe como usurlas que me lo diga....:cool:

Caral
23-10-2007, 03:10:43
Hola
Bienvenido al club, por favor lee la guia (http://www.clubdelphi.com/foros/guiaestilo.php) de estilo.
La verdad no se a que te refieres en cuanto a las excepciones, pero para que te des una idea:

begin
DataModule1.AdoConnection1.BeginTrans;
try
// aqui todo lo que sea
end;
DataModule1.AdoConnection1.CommitTrans;
except
on E:Exception do DataModule1.AdoConnection1.RollbackTrans;

Tal vez te de alguna idea.
Saludos

Neftali [Germán.Estévez]
23-10-2007, 10:31:03
Yo no acabo de entender muy bien lo que quieres.
No se si quieres todos los códigos de excepción, si quieres el tipo (EOLEException), si quieres cómo capturarlas (Caral te ha dado el camino a seguir),...

¿Te puedes explicar un poco mejor?

SidedTermita
23-10-2007, 16:27:02
Si eso es neftali, eso es lo que quiero todos los codigos de excepcion (EOLEException). Se les agradece a todos por responder lo mas rapido posible y disculpen por no ser lo suficientemente claro. GRACIAS...:)

Neftali [Germán.Estévez]
23-10-2007, 17:16:00
Supongo que te refieres a esta lista (http://www.thecoffeeplace.com/om/aaaaaawh.html)

SidedTermita
23-10-2007, 20:00:45
Je je je je, si es eso gracias por la respuesta.....Se le agradece a todos los que me respondieron. Salu2. . .

SidedTermita
21-11-2007, 03:35:05
Supongo que te refieres a esta lista (http://www.thecoffeeplace.com/om/aaaaaawh.html)

Hola de nuevo je je je soy el mismo, solo quiero saber como se usa esta lista de errores en delphi, cuando se que ocurrio tal error, un erro especifico.
Por ejemplo tengo un sistema que se enlaza a una BD de SQL Server 7.0 y ps al momento de cargar dicho sistema trata de enlazar con SQL Server, cuando no hay ningun problema de enlace no mark ningun error ni mensage, pero lo que quiero saber es como capturo el error de: "no se encuentra el servidor" y tambien atrapar errores de llaves primarias duplicadas, o una relacion entre BD null, todo eso pero tener un mensage especifico para cada error....
De antemano se les agradece. ESPERO ME HAYA EXPLIKDO...

Lepe
21-11-2007, 11:28:18
El evento OnPostError de un dataset, es el mejor lugar para atrapar los errores de llaves duplicadas, campos nulos etc.

Cualquier otro error inesperado, lo puedes manejar en un componente TApplicationEvents.OnException situado en tu ventana principal o datamodule.

Saludos

SidedTermita
22-11-2007, 03:42:58
Entoncs para que sirve esta lista (http://www.thecoffeeplace.com/om/aaaaaawh.html) ?

egostar
22-11-2007, 04:05:59
Entoncs para que sirve esta lista (http://www.thecoffeeplace.com/om/aaaaaawh.html) ?

Bueno, esa lista te muestra los codigos de error y su mensaje, esto te lo muestra si usas el código que caral colocó y envias el mensaje.


try

...
except
on E:Exception do ErrorDialog(E.Message, E.HelpContext);
end;


Salud OS

Neftali [Germán.Estévez]
22-11-2007, 11:40:42
Entoncs para que sirve esta lista (http://www.thecoffeeplace.com/om/aaaaaawh.html) ?

Por ejemplo para generar un código como este:


// Si existe o no la tabla...
function _ExistTable:Boolean;
const
ERROR_TABLE_NOT_EXIST = -2147217865; // no existe el objeto
var
ADOQ:TADOQuery;
begin

Result := True;
ADOQ := TADOQuery.Create(nil);

// Bloque de proteccion
try
ADOQ.ConnectionString := ExceptionHook.ADODBConnectionString;
ADOQ.SQL.Add('SELECT Id FROM ' + EXCEPTIONS_TABLENAME +
' WHERE Id=0');

// Proteccion de la ejecución
try
ADOQ.ExecSQL;
// error de BD
except on E:EOleException do
if (E.ErrorCode = ERROR_TABLE_NOT_EXIST) then begin
Result := False;
end;
end;
finally
ADOQ.Free;
end; // try.. finally
end;

SidedTermita
12-12-2007, 02:21:04
:DOK esta respuesta si me gustó, neftali. Bueno te doy las mas sinceras gracias y espero que la pases bn en estas fiestas, bueno se los deseo a todos!!!