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

EAccessViolation na TADOConnection objektu

[es] :: C/C++ programiranje :: EAccessViolation na TADOConnection objektu

[ Pregleda: 2728 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vula

Član broj: 119166
Poruke: 119
*.teol.net.



Profil

icon EAccessViolation na TADOConnection objektu22.07.2007. u 21:48 - pre 203 meseci
Prijavljuje mi EAccessViolation exception, 'Access violation at adress ...'. Je li neko imao slicnih problema? U cemu je stos?

Code:

 try
  {
   if(!(connection -> Connected)) // <---- Ovdje se skrsi! Ne moze da pristupi tom objektu?!
    {
     connection -> LoginPrompt = false;
     connection -> ConnectionTimeout = 10;
     connection -> Open();
     connection -> Connected = true;
    }
  }
 catch (...)
  {
   TfrmGreska* greska = new TfrmGreska(this, "Povezivanje sa bazom podataka nije uspjelo!");
   greska -> ShowModal();
   delete greska;

   exit(EXIT_FAILURE);
  } 


Pokrenuo sam na jos jednom projektu istu pricu i sve radi ok a u ovom nece.
Kontam da se EAccessViolation exception javlja kada se pristupa neinicijalizovanom objektu. Ali inicijalizovao sam ga.
Stavljao sam ga iz palete i kreirao i dinamicki (TADOConnection*, new...) i isto.

Hvala.

p.s. Otislo greskom na C++ za pocetnike. Ne zamjerite. :)
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 09:22 - pre 203 meseci
Očito je da dinamička alokacija nije uspjela... Postaj kod kojim si dinamički alocirao connection.

Nakon alokacije provjeri da li je uspjela tj.:

Code:
if(connection == NULL)
{
    ShowMessage("Alokacija nije uspjela!");
    return;
}



... ili to možeš sa try - catch.
 
Odgovor na temu

vula

Član broj: 119166
Poruke: 119
*.teol.net.



Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 09:41 - pre 203 meseci
Ovako imam jedan TDataModule koji se zove dmData.
I u njmu u .h
Code:
TADOConnection *connection; 

a u .cpp u konstruktoru
Code:
connection = new TADOConnection(this); 
i konekcioni string
i u .cpp ovu metodu
Code:

void TdmData::Povezivanje()
{
 try
  {
   if(!(connection -> Connected))
    {
     connection -> LoginPrompt = false;
     connection -> ConnectionTimeout = 10;
     connection -> Open();
     connection -> Connected = true;
    }
  }
 catch (...)
  {
   TfrmGreska* greska = new TfrmGreska(this, "Povezivanje sa bazom podataka nije uspjelo!");
   greska -> ShowModal();
   delete greska;

   exit(EXIT_FAILURE);
  }
}

koju pozivam iz druge forme kada kliknem da jedno dugme (naravno da sam u toj formi ukljucio u .h TDataModule sa #include "Data.h", ne bi me kompajler pustio bez toga), posto prethodno unesem neki id.
Dakle,
Code:
 dmData -> Povezivanje(); 

To je sve.
I skrsi se na istom mjestu. J.... .. familiju.
 
Odgovor na temu

vula

Član broj: 119166
Poruke: 119
*.teol.net.



Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 10:08 - pre 203 meseci
Sto je najgore iz drugog projekta se na istu bazu kaci bez problema!
Kao sto rekoh ..... .. f.......
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 11:49 - pre 203 meseci
Aha.... riječ je o data modulu. Naime, ako ti je ADOConnection u DataModulu onda moraš staviti u projektu da se prvo stvori taj modul, a tek onda prva forma.

Znači... Project / Options / Forms ...i tu namjesti da se modul prvi kreira.
 
Odgovor na temu

vula

Član broj: 119166
Poruke: 119
*.teol.net.



Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 13:26 - pre 203 meseci
Tacno! Ne mogu da vjerujem kako sam mogao to da predvidim. Znao sam da je neka glupa sitnica.
Kao sto rekoh istu metodu sam koristio u jos jednom projektu i tamo mi sve radi ok a ovdje nije htjelo. Totalno sam ignorisao raspored kreiranja formi.

Hvala ti.

p.s. Ipak je ovo bilo za C++ za pocetnike. Pocetnicka greska. :(
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: EAccessViolation na TADOConnection objektu23.07.2007. u 13:43 - pre 203 meseci
Ma naprotiv, ne bave se početnici baš sa bazama podataka i konekcijama ;) Pozdrav
 
Odgovor na temu

[es] :: C/C++ programiranje :: EAccessViolation na TADOConnection objektu

[ Pregleda: 2728 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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