CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - PostgreSQL i BCB - połączenie

PostgreSQL i BCB - połączenie

Problemy związane z tworzeniem i zarządzaniem programami bazo-danowymi.
Regulamin działu


Zadając pytania dotyczące baz danych należy podawać szczegółowe informacje o bazie danych nad którą się pracuje, czyli:

  • Rodzaj serwera bazodanowego: MySql, MSSQL, Oracle itp.
  • Wersja bazy danych
  • Technologia bazodanowa używana w programie: ADO, DbExpress, InterBase
  • Komponenty użyte do zestawienia połączenia: ADOConnection, SqlConnection
  • Sposób zestawienia komponentów bazodanowych np. DataSet - DataSource - DbGrid lub DataSet - DataSetProvider - ClientDataSet - DataSource - DbGrid
  • Jeżeli używane były biblioteki innych firm niż Borland, CodeGeer i Embarcadero proszę podać ich nazwy, numer wersji i adres źródła.

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » wtorek, 31 sierpnia 2010, 15:21

:) Nic się nie stało :)
Połączenie testowałam, powiodło się
Connected cały czas jest true.
Mój program nie działa, cały czas wyświetla komunikat o pustych polach.
Dla jasności, dane, które podaję przy logowaniu są sprawdzone i powinno wyjść przykładowe b :D
Dane te to właśnie dane logowania.
Ostatnio edytowano wtorek, 31 sierpnia 2010, 15:51 przez JotEmKa, łącznie edytowano 1 raz
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » wtorek, 31 sierpnia 2010, 15:30

Nic mi ten kod nie mówi :) . Widze tam tylko, że zawsze czyścisz edity. Pokaż deklarację zmiennej dane i moment przekazywania do niej wartości. Może coś tam gubisz ??
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » wtorek, 31 sierpnia 2010, 15:34

KOD cpp:     UKRYJ  
void __fastcall TLogowanie::LoginBClick(TObject *Sender)
{
  String dane;
  ADOQuery1->SQL->Text="działające zapytanie do bazy";
  try
  {
        ADOQuery1->Open();
        dane=ADOQuery1->FieldByName("cos")->AsString;
        if( dane == "b")
        {
                Form2->Show();
                ImieE->Text="";
                NazwE->Text="";
                HasloE->Text="";
      }
        else
        {
                ShowMessage("Podales nieprawidlowe dane lub nie masz uprawnien!");
                ImieE->Text="";
                NazwE->Text="";
                HasloE->Text="";
        }
  }
  catch (Exception &E)
  {
        if ( !dynamic_cast<ENoResultSet*>(&E) )
        throw;
  }
}


Przed wprowadzonymi zmianami logowanie działało, tyle, że wyskakiwało okienko logowania do bazy.
Tak się właśnie zaczęłam zastanawiać nad wykorzystaniem ADOQuery, bo pewnie tam jest błąd.
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » wtorek, 31 sierpnia 2010, 18:26

Jeżeli dobrze rozumiem twoje intencie to robisz to tak:

Klikasz w przycisk zaloguj
Pobierasz dane z bazy danych
Jeżeli dana z bazy danych == b to pokazujesz Form2 ( forma logowania ??? )

Dodaj z ciekawości coś takiego:

KOD cpp:     UKRYJ  
ADOQuery1->SQL->Text="działające zapytanie do bazy";
if(!ADOConnection1->Connected)  {
  ShowMessage("Brak połączenia");
  return; }


Bo poprawnie odwołujesz się do pola z zapytania SQL i jeżeli w tabeli są dane i zapytnie SQL jest dobre to Form2 powinna się pokazać
Ostatnio edytowano wtorek, 31 sierpnia 2010, 18:30 przez Cyfrowy Baron, łącznie edytowano 3 razy
Powód: Zamieniłem tag code na cpp. Do kolorowani skąłdni kodu masz tag [cpp][/cpp] w dziale portal info jak uzywać innych tagów.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaOpera

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » wtorek, 31 sierpnia 2010, 19:18

Moje intencje zrozumiałeś idealnie :)
Form się nie pokazał :(
Sprawdziłam zapytanie w działającej wersji logowania (jeszcze z wykorzystaniem BDE i irytującym okienkiem logowania do bazy) i działa.
Z tego wniosek, że coś w połączeniu jeszcze pokręciłam.
Czy możliwe,żeby coś ze sterownikiem było pokręcone?
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » czwartek, 2 września 2010, 17:25

Poniżej zamieszczam kod mojego logowania:
Kod: Zaznacz cały
void __fastcall TLogowanie::LoginBClick(TObject *Sender)
{
String dane;
ADOQuery1->SQL->Text="działające zapytanie do bazy";
try
{
ADOQuery1->Open();
dane=ADOQuery1->FieldByName("cos")->AsString;
if( dane == "b")
{
Form2->Show();
ImieE->Text="";
NazwE->Text="";
HasloE->Text="";
}
else
{
ShowMessage("Podales nieprawidlowe dane lub nie masz uprawnien!");
ImieE->Text="";
NazwE->Text="";
HasloE->Text="";
}
}
catch (Exception &E)
{
if ( !dynamic_cast<ENoResultSet*>(&E) )
throw;
}
}

W załączniku zamieszczam również dwa screeny, mojego okienka logowania oraz wyskakującego okienka logowania do bazy.
Gdy użyte było komponenty BDE, logowanie wyglądało jak na obrazku logowanie.jpg. Po uzupełnieniu wszystkich pól pokazywał się kolejny form.
Teraz po uruchomieniu programu wyskakuje tylko moje okienko logowania, po wpisaniu danych jak na obrazku i naciśnięciu Login, wyskakuje mi powiadomienie: "Podales nieprawidlowe dane lub nie masz uprawnien!".

Gdy zamiast mojego kodu logowania wpisałam kod podany przez Corvis'a
ADOQuery1->SQL->Text="działające zapytanie do bazy";
if(!ADOConnection1->Connected) {
ShowMessage("Brak połączenia");
return; }

po uruchomieniu programu wyskakuje tylko moje okienko logowania i wpisaniu danych jak na obrazku i naciśnięciu Login, nic się nie dzieje.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » czwartek, 2 września 2010, 17:38

Spakuj projekt w zipa i wrzuć na forum. Zrób to tylko bez plików tymczasowych. Bo tak to sie nie dogadamy ;)
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaOpera

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » czwartek, 2 września 2010, 18:15

W załączniku kod programu
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » czwartek, 2 września 2010, 18:29

Brakuje Unit1.dfm
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaOpera

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » czwartek, 2 września 2010, 19:29

W tamtym zip'ie plik Unit1.dfm jest, tylko pobawiłam się coś Builderem i niezbędny jest teraz w katalogu projektu katalog PLK.
W załączniku wszystko co potrzebne do uruchomienia aplikacji
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Wszyscy wiedzą, że coś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi."
Albert Einstein
Avatar użytkownika
JotEmKa
Bladawiec
Bladawiec
 
Posty: 32
Dołączył(a): poniedziałek, 30 sierpnia 2010, 16:09
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows XP SP3
Kompilator: Borland C++ Builder 6
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » czwartek, 2 września 2010, 21:23

Problem został rozwiązany. Zapytanie SQL zwracało dane ze spacjami na końcu, dlatego porównywanie caly czas dawało wynik FALSE;
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House

Za ten post autor Corvis otrzymał podziękowanie od:
JotEmKa
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaOpera

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Bazy danych

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron