Toon posts:

[Delphi/MySQL] database exceptions *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een delphi applicatie die gebruik maakt van een MySQL database. Ik ben nou bezig met de juiste foutmeldingen geven voor de betreffende MySQL errors.

Momenteel geef ik een foutmelding als er een EDBEngineError optreedt.
Die melding geef ik aan de hand van de NativeError code. (E.Errors[1].NativeError)
De standard exception melding van delphi (7) heeft nuttige informatie waar ik gebruik van wil maken zoals de tabelnaam en de uniek velden. Ik heb lang gezocht en kan echter niet vinden hoe ik deze kan benaderen.

Kan iemand mij dit vertellen hoe dit mogelijk is en zo niet, wat een goede manier is van database exceptions vertalen in duidelijke foutmeldingen.

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Volgens mij ,om je eigen foutmeldingen te kunnen testen moet je het vinkje uitzetten bij stop on delphi exceptions.
En kun je geen exception klasse maken die je afgeleid hebt van de exception class(extend of zo weet niet hoe dat bij delphi gaat)

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Verwijderd

Topicstarter
Ja dat weet ik wel. Hoe ik zelf excepties kan afhandelen.
Mijn vraag is hoe ik gebruik maak van de waardes die in de exception objecten voorkomen zoals tabelnamen en unique velden.

  • jopiek
  • Registratie: September 2000
  • Laatst online: 06-05 15:04

jopiek

Tja... 'ns ff denken.

Verwijderd schreef op 23 januari 2004 @ 11:37:
Ik heb een delphi applicatie die gebruik maakt van een MySQL database. Ik ben nou bezig met de juiste foutmeldingen geven voor de betreffende MySQL errors.

Momenteel geef ik een foutmelding als er een EDBEngineError optreedt.
Die melding geef ik aan de hand van de NativeError code. (E.Errors[1].NativeError)
De standard exception melding van delphi (7) heeft nuttige informatie waar ik gebruik van wil maken zoals de tabelnaam en de uniek velden. Ik heb lang gezocht en kan echter niet vinden hoe ik deze kan benaderen.

Kan iemand mij dit vertellen hoe dit mogelijk is en zo niet, wat een goede manier is van database exceptions vertalen in duidelijke foutmeldingen.
Waar stuur je MySQL mee aan? Ik gebruik de Zeos componenten, werkt erg fijn.
Zie http://www.torry.net/

Cogito Ergo Credo


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Dat ligt aan wat de exceptie allemaal voor informatie je geeft. Een exceptie is een class en kan dus meerdere properties bevatten. Volgens jouw wordt er een EDBEngineError exceptie gegooid, dus alle properties die daar in staan, staan tot jouw beschikking. Als je daar niet de tabelnaam en unieke velden uit kan halen houdt het op. Je zou de NativeError kunnen analyseren of misschien doet ZeOS het beter.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Topicstarter
Ik gebruik MyODBC, gedownload van MySQL.com

Heeft Zeos meer mogelijkheden dan op dat gebied?
Ik dacht dat dat puur de koppeling was.

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 23:42

BoomSmurf

Am-Ende!

De exception bevat over het algemeen alleen de complete melding, en wat codes, deze kun je opvangen en parsen... Onderstaand gebruikt 'Exception' maar de bepaalde exceptionklasse die echt gegooit wordt (bv EDBException) bevat wellicht wat andere handige dingen.

Opvangen van de message doe je zo:

code:
1
2
3
4
5
6
7
8
try
  // error gevende code
except
  on E: Exception do begin
  // E.Message = de melding
  // Hier parsen of zo :)
  end;
end;


In de Application.OnException kun je hem ook benaderen.

Delphi-Jedi heeft in de JCL ook een erg handig debug unit zitten zodat je ook erachter kunt komen waar in de code precies de fout heeft plaatsgevonden (unit, procedure, line, etc).

[ Voor 13% gewijzigd door BoomSmurf op 23-01-2004 15:33 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ik weet niet of ZeOS meer mogelijkheden heeft op dat gebied. Zal je even zelf moeten bekijken: http://zeoslib.sf.net

We adore chaos because we like to restore order - M.C. Escher


  • jopiek
  • Registratie: September 2000
  • Laatst online: 06-05 15:04

jopiek

Tja... 'ns ff denken.

LordLarry schreef op 23 januari 2004 @ 15:46:
Ik weet niet of ZeOS meer mogelijkheden heeft op dat gebied. Zal je even zelf moeten bekijken: http://zeoslib.sf.net
Zeos is gewoon super makkelijk, het vangt mooi allerlei excepties af en dus minder kans op problemen... bij mij lukte het eerst zelf ook niet met die mysql meuk...

Cogito Ergo Credo

Pagina: 1