Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ADO komponente - Prepoznavanje greski

[es] :: C/C++ programiranje :: ADO komponente - Prepoznavanje greski

[ Pregleda: 1821 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon ADO komponente - Prepoznavanje greski28.02.2006. u 16:22 - pre 220 meseci
U C++ Builder-u 6.0 koristim ADO komponente za rad sa bazama podataka. Kada se dogodi neka greska kako da provjerim koja je to greska pa da na osnovu te informacije nesto napravim? Jedino sto mi pada na pamet jest usporedjivanje error stringova, no valjda postoji i inteligentnije rjesenje?

Znaci, da li igdje postoji popis svih tih greski ili nekakvi njihovi ID-ovi pa da ih tako prepoznam?
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: ADO komponente - Prepoznavanje greski28.02.2006. u 16:41 - pre 220 meseci
Koliko sam ja upucen, ne postoje neki ID-jevi gresaka kao sto je to bilo u BDE.

Po pravilu, greske treba traziti kolekciji:

TADOConnection::Errors

(najbolje ukljuci onaj IntelliSense da ti automatski predlozi metode)


Mad ja to radim ovako, jer mi se cini da detaljnije mogu da kazem
korisniku sta se desilo:

Code:

void __fastcall TMainDB::NekaTabelaPostError(TDataSet *DataSet, 
      EDatabaseError *E, TDataAction &Action) 

   // Iskljuci sistemske poruke o gresci
   Action = daAbort; 


   if ( StrPos( E->Message.c_str(), "duplicate values" ) != NULL ) 
   { 
      // MESSAGE: ... 
      return; 
   } 


   if ( StrPos( E->Message.c_str(), "zero-length"       ) || 
        StrPos( E->Message.c_str(), "Null value"        ) || 
        StrPos( E->Message.c_str(), "must have a value" ) || 
        StrPos( E->Message.c_str(), "Error in row"      ) || 
        StrPos( E->Message.c_str(), "Empty row cannot be inserted" ) ) 
   { 


      if ( StrPos( E->Message.c_str(), "Polje1" ) ) 
      { 
         // MESSAGE: ... 
         return; 
      } 


      if ( StrPos( E->Message.c_str(), "Polje2" ) ) 
      { 
         // MESSAGE: ... 
         return; 
      } 

      // ...

      // PORUKA: "Red ne moze biti prazan" 

      // ...

      return; 
   } 

   ShowMessage( "Nepoznata greska: " + E->Message ); 
   return; 



 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: ADO komponente - Prepoznavanje greski28.02.2006. u 16:46 - pre 220 meseci
Ah... nista onda. Bacit se na analizu stringova i to je to.
 
Odgovor na temu

[es] :: C/C++ programiranje :: ADO komponente - Prepoznavanje greski

[ Pregleda: 1821 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.