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.

PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » poniedziałek, 30 sierpnia 2010, 16:27

Witam,
na początku zaznaczę, że swoją przygodę z Postgresem i BCB zaczęłam całkiem niedawno.
Udało mi się stworzyć już pewną część mojego zaplanowanego dzieła, ale kilku rzeczy przeskoczyć nie mogę :(
Pierwsza to połączenie z bazą danych. Otóż, połączenie jako takie już jest, mogę sobie wyciągać i zapisywać dane z i do bazy.
Tylko to wieczne logowanie mnie już powoli wykańcza.
Zainstalowałam ODBC dla postgresa, na forma wrzuciłam sobie TTable, TQuery oraz TDataSource (gdzieś wyczytałam, że taki układ powinien być.) Każdy z elementów połączyłam z moją postgresową bazą danych. Niestety nigdzie nie znalazłam miejsca, gdzie wpisać usera i hasło dostępu do bazy. No i teraz przy każdej próbie uruchomienia projektu wyskakuje mi okienko, z miejscem do wpisania w/w danych.
Powtarzanie w kółko tych samych danych zaczyna już być irytujące, więc proszę o pomoc. Chodzi o to, żeby w jakiś sposób nawiązać połączenie z bazą danych, nie musząc podawać użytkownika i hasła przy każdym uruchomieniu.
Pozdrawiam i z góry dziękuję
"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 Cyfrowy Baron » poniedziałek, 30 sierpnia 2010, 17:40


Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
JotEmKa
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » poniedziałek, 30 sierpnia 2010, 18:43

Dziękuję za szybką odpowiedź :)
Tak jak pisałam, dopiero zaczynam.
Staram się napisać aplikację, do której będzie się logowało kilka osób. W tym celu stworzone mam okienko logowania do podania loginu i hasła użytkownika.W związku z tym chyba dodatkowe logowanie nie jest najlepszym rozwiązaniem (jeśli wszystko dobrze zrozumiałam). Szczerze powiedziawszy póki co odpowiada mi, aby hasło było wpisane w kodzie. To i tak będzie tylko aplikacja próbna, która raczej nie ujrzy za dużo światła dziennego:)
Przyznam się, że kombinowałam już coś pod kątem TSQLConnection, ale niestety mój BCB nie widzi w driver'ach Postgresa.
Chyba poważnie skopałam :|
Jeśli mogę coś dodać, to proszę o instrukcje jak dla totalnego laika :)
Pozdrawiam ponownie
"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 Cyfrowy Baron » poniedziałek, 30 sierpnia 2010, 18:48

Używasz środowiska C++Builder 6 Personal? Jeżeli jest to wersja Personal, to w tej wersji jest chyba tylko taka okrojona baza danych, która nie działa w pełni samodzielnie. Pewien jednak nie jestem, być może nie rozumiem Twojego problemu, gdyż nie opisałeś go jasno.

Niestety nigdzie nie znalazłam miejsca, gdzie wpisać usera i hasło dostępu do bazy.


Stwórz własne okno logowania, co za problem, przecież biblioteka ma opcje user i password nawet jeżeli nie widać ich w Obiect Inspector.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Corvis » poniedziałek, 30 sierpnia 2010, 21:27

Głowy nie dam uciąć ale czy aby napewno da się połączyć z PostgreSQL poprzez TSqlConnection ?? Kiedyś próbowałem i słabo mi to wyszło. Chyba jest tak jak mówi Cyfrowy Baron, że trzeba mieć pełną wersję Architecta albo Enterprice.


Napewno da się to zrobić poprzez komponenty http://www.da-soft.com/anydac/ - aktualnie jest testuje i jestem zachwycony :)
"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 » poniedziałek, 30 sierpnia 2010, 23:51

Używam środowiska Enterprise Suite.
Staram się dopiero nauczyć czegokolwiek :|
Możesz mi więcej powiedzieć o tym oknie logowania? :mrgreen:
Ja w swojej aplikacji mam już jedno okno logowania, zależne od danych z bazy, czy sugerujesz, żeby zrobić jeszcze jedno?
Przy uruchomieniu programu wyskakuje mi coś jakby właśnie okienko logowania: Database Login. A ja wolałabym go tam nie widzieć i najlepiej nic w zamian.
Z tym szukaniem, chodziło mi o kawałek kodu odpowiadający za połączenie z bazą, coś jak w poście : Komponenty do połączenia z MySQL w przykładach w ostatniej wypowiedzi.
Czy jest jakaś szansa, żeby wpisać dane dostępowe do bazy na stałe w kod programu?
Przyznam się, że jest to moja pierwsza aplikacja, więc proszę o podwójną albo i jeszcze większą wyrozumiałość.
Dziękuję:)
"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 Cyfrowy Baron » wtorek, 31 sierpnia 2010, 00:00

Nie mam tej bazy danych, więc nie bardzo wiem, ale w poście do którego wcześniej Ciebie odsyłałem, masz taki fragment:

Corvis napisał(a):Więc wpisz sobie te parametry ( usera i hasło ) na stałe do kodu programu, daj loginpromnt na false. A połączenie otwieraj po starcie programu


Czy w komponencie którego używasz jest funkcja LoginPrompt lub podobna? Jeżeli tak ustaw ją na false, a okno logowania nie będzie się pojawiać przy uruchomieniu programu.

Jeżeli masz już jedno okienko logowania, to więcej nie potrzebujesz.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Cyfrowy Baron » wtorek, 31 sierpnia 2010, 10:47

Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez banita » wtorek, 31 sierpnia 2010, 11:24

TSQLconnection pracuje na dbexpress. Żadna z wersji delphi/c++builder nie posiada tego drivera dla PostgreSQL.

Masz kilka możliwości:
  • skorzystać z komponentów firm trzecich np devart (cena komponentu w stosunku do ceny wersji enterprise środowiska nie jest wysoka),
  • skorzystać z ODBC i komponentów BDE (najgorsze z możliwych),
  • skorzystać z ODBC i komponentów ADO,
  • skorzystać z komponentów ADO i łączyć się za pomocą OLE DB ale musisz posiadać sterownik dla PostgreSQL. o ile mi wiadomo nie istnieje darmowa wersja.

Za ten post autor banita otrzymał podziękowanie od:
JotEmKa
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    Windows 7Opera

Re: PostgreSQL i BCB - połączenie

Nowy postprzez Cyfrowy Baron » wtorek, 31 sierpnia 2010, 11:27

banita napisał(a):    skorzystać z ODBC i komponentów BDE (najgorsze z możliwych),


JotEmKa napisał(a):Zainstalowałam ODBC dla postgresa, na forma wrzuciłam sobie TTable, TQuery oraz TDataSource (gdzieś wyczytałam, że taki układ powinien być.)


Chyba właśnie tak postąpił. Zainstalował ODBC i użył komponentów Borland Database Engine na co wskazują nazwy TTable, TQuery i TDataSource.

Czytałem, że BDE od jakiegoś czasu nie oferuje już wsparcia dla PostgreSQL, ale w C++Builder 6 powinno jeszcze działać o ile PostgreSQL nie rozwinął się od tego czasu na tyle, że rozmija się z BDE.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: PostgreSQL i BCB - połączenie

Nowy postprzez banita » wtorek, 31 sierpnia 2010, 11:44

BDE obsluguje ODBC więc musi działać z każdym sterownikiem ODBC.
Kiedyś pisalem aplikacje pracujaca z postgresql w konfiguracji ADO - ODBC- postgresql i bylo calkiem niezle, o ile aplikacja pracuje z baza lokalna badz w sieci lan. w przypadku gdy baza stoi na jakims serwerze poza siecia lan ODBC moze powodwowac znaczny spadek wydajnosci.

w przypadku odbc mozesz wpisac wlasny connection string w ktorym mozesz podac usera i haslo

http://www.connectionstrings.com/postgre-sql#p51

dla ado budujesz string i przypisujesz go do wlasciwosci ConnectionString. dodatkowo ustawiasz
IsolationLevel = ilReadCommitted; <---- chyba ze wolisz inaczej
Provider = "MSDASQL"; <----- chyba ze nazwa jest inna ale watpie
LoginPrompt = false;
KeepConnection = true;


zapomnij o BDE. to jest technologia dawno nie rozwijana i utrzymywana przy zyciu tylko w celu zapewnienia kompatybilnosci wstecz.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    Windows 7Opera

Re: PostgreSQL i BCB - połączenie

Nowy postprzez JotEmKa » wtorek, 31 sierpnia 2010, 13:53

Witam,
Przede wszystkim dziękuję za odpowiedzi :)
z tego co widzę, to użyłam właśnie najgorszego możliwego rozwiązania :|
Wedle Waszych wskazówek postaram się przejść na ADO.
Kurcze, pewnie gdybym wykorzystała MySQL'a pewnie poszłoby szybciej, ale przecież teraz się nie poddam :)
Więc tak:
Na Forma wstawiłam ADOConnection, w Object Inspector

KOD cpp:     UKRYJ  
IsolationLevel = ilReadCommitted;
Provider = "MSDASQL.1"; //<-- u mnie jest taka nazwa automatycznie.
LoginPrompt = false;
KeepConnection = true;


Oto, jak ustawione są właściwości łącza danych :

wld1[1].jpg
wld2[1].jpg
wld3[1].jpg


Od tego momentu przestało mi działać logowanie, a system nie widzi tego, co w czasie działanie systemu wpisane zostaje w Edity. Co może być przyczyną?
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 » wtorek, 31 sierpnia 2010, 14:00

A otworzył(a)ś połączenie ??

Kodem:

Kod: Zaznacz cały
ADOConnection->Conneted = true;


lub w Inspektorze obiektów

Kod: Zaznacz cały
ADOConnection->Conneted  -> true;
Ostatnio edytowano wtorek, 31 sierpnia 2010, 15:09 przez Corvis, łącznie edytowano 1 raz
"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:06

Nie otworzyłem, ale otworzyłam :) w Object Inspector
Tak, jest otwarte.
"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:10

Oks sorry ;)


To jeszcze mi powiedz, które logowanie nie działa bo już się pogubiłem :P

Czy robiłaś "Testuj połączenie " ?
Czy połączenie jak ustawiałaś Connected na true w Inspektorze to jest jest tam wartość true ?? ( czy jesteś połączona )

a system nie widzi tego, co w czasie działanie systemu wpisane zostaje w Edity


O jakie dane tu chodzi ??? O parametry połącznia ??
"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

Następna 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 1 gość

cron