Bazy danych

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.

Bazy danych

Nowy postprzez P@bLO » niedziela, 3 stycznia 2010, 00:55

Witam.
Map pewne problemy, przeszkody za które niewiem jak mam się zabrać. Przeszukałem forum, ale nic nie znalazłem co by mi pomogło.
Na początek coś o programie:
Mam program zbudowany z 4 komponentów DBGrid, 3 z nich są naniesione na zakładki komponentu PageControl.
Do tych 3 DBGrid są ładowane 3 bazy danych stworzone w Paradox7 i windowsowskim DBE Administrator. Ładowanie odbywa się za pomocą oddzielnych TTable i DataSource (dla kazdego DBGrid osobny zestaw).
To co wyżej już mam

A borykam się z następującymi problemami:
1) We wszystkich 3 DBGrid'ach ładowane dane mają 3 kolumny (Nazwa, Cena, Opis)
chciałbym zrobić tak aby były wyświetlane tylko 2 pierwsze w DBGrid'ach, a 3 czyli Opis po kliknięciu(jednokrotnym) na pozycje w DBGrid wyświetlało w komponencie Memo (lub podobnym zaproponowanym)
2) Po dwukrotnym kliknięciu na pozycje w DBGridach próbuje zrobić, żeby kopiowało całą pozycje do czwartego komponentu DBGrid.
3)jak zsumować wartości z kolumny Cena z czwartego DBGrida

Pozdrawiam Paweł
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez banita » niedziela, 3 stycznia 2010, 13:48

Do tych 3 DBGrid są ładowane 3 bazy danych...

bazy czy tabele?

ad 1
do tego sluzy komponent DBMemo.
dla DBGrid wybierasz opcje Columns, dajesz 'add all fields' . bedziesz mial pokazane wszystkie kolumny, wybierasz ta ktorej nie chcesz i usowasz. teraz dbgrid jej nie pokarze.
dla dbmemo podpinasz ten sam datasource co do grida i ustawiasz 'DataField' na ta kolumne ktora chcesz pokazac w memo.
ad 2
nie bardzo rozumiem jak ty to widzisz. pracujac na dbgridzie tak naprawde pracujesz na datasecie ktory jest do niego podpiety. chcesz odwolac sie do danych w danym wierszu to odwolujesz sie do datasetu i z niego pobierasz te wartosci a nie z kontrolki grida. jesli chcesz je kopiowac do innej kontrolki to juz nie do DBGrida tylko albo do stringgrida albo listview albo cos podobnego.
ad 3
to zalezy od tego co wybierzesz w punkcie drugim.


ps:
niektore zestawy komponentow do baz danych dodaja komponent VirtualTable ktory moze byc wykozystany w punkcie 2 jako dataset(nie pochodzacy z bazy) dla dbgrida, o ile pamietam to dbexpress chyba tez moze tak przechowywac dane ale nigdy tego nie robilem.

Za ten post autor banita otrzymał podziękowanie od:
P@bLO
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
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez P@bLO » niedziela, 3 stycznia 2010, 15:08

czyli jakich komponentów mam użyć.. obecnie 3 tabele ładowane są w 3 DBGridy
to w co kopiować wybrane pozycje.. Program to forma zad-dom i mam zrobić coś na styl sklepu.. są 3 kategorie więc i 3 DBGrid. 4 komponent DBGrid miał być listą wybranych produktów i miało wyświetlać zsumowane koszta.
A może dało by radę kopiować do DBListBox (do jednego nazwę, a do drugiego cenę) bo z ListBox-u sumowanie byłoby łatwiejsze lub aby kopiowało elementy z poszczególnych kolumn do DBEdit(dla kazdego elementu osobny) i w tym samym zdażeniu kopiowało do zbiorowej kontrolki??

nie mam pomysłu jak tego dokonać. Próbuje sposobami jakimi robiło się w zwykłych kontrolkach, ale te od Baz inaczej działają.

EDIT:
może zna ktoś jakiegoś linka do jakiś instrukcji odnośnie komponentów DB (tych do baz), jakieś wskazówki.. nie oczekuje na to aby ktoś zrobił za mnie gotowca, lecz chcę się czegoś nauczyć i ogarnąć temat
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez banita » niedziela, 3 stycznia 2010, 21:03

napisalem jak byk:
pracujac na dbgridzie tak naprawde pracujesz na datasecie ktory jest do niego podpiety


nie mozesz dodac do dbgrida,dbedita czy czegokolwiek dbxyz tylko do datasetu ktory jest podpiety do tej kontrolki.

jesli jest to zbior wybranych pozycji to zapisuj je do kontrolke nie bazodanowych czyli to co napisalem w pierwszym poscie.
wybor jest juz twoja decyzja.
zaznaczasz element na DBGrid, w tym momencie dataset ustawia sie na ten element i mozesz odczytac wartosci z datasetu i wpisac je do jakiejs innej kontrolki.

Za ten post autor banita otrzymał podziękowanie od:
P@bLO
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
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez P@bLO » niedziela, 3 stycznia 2010, 21:24

czyli mogę kopiować z DataSet do jakiego bądź ListBoxa, Edita itd wybrane komórki?? jak wyłuskać osobno komórkę z nazwą, a osobno z ceną bo więcej mi nie potrzeba.
a jak to zrobić, chodzi mi o fragment kodu tzn. jak to ująć w kodzie, żeby zadziałało, jaka składnia?
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez Cyfrowy Baron » niedziela, 3 stycznia 2010, 21:53

czyli mogę kopiować z DataSet do jakiego bądź ListBoxa, Edita itd wybrane komórki??


Nie możesz, DataSet współpracuje tylko z komponentami DataBase.
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
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez banita » niedziela, 3 stycznia 2010, 22:39

wlasciwosc eof zwraca true jesli dataset osiagnie koniec.
konstrukcja:
TTable->FieldByName("nazwa")->AsString;
zwraca wartosc z komurki 'nazwa' dla aktualnego wiersza.
np:
TEdit->Text = TTable->FieldByName("nazwa")->AsString;
wiersz mozesz wybrac zaznaczajac go w DBGrid albo recznie pzregladajac obiek dataset (metoda next())

Za ten post autor banita otrzymał podziękowanie od:
P@bLO
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
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez P@bLO » niedziela, 3 stycznia 2010, 23:01

Cyfrowy Baron napisał(a):
czyli mogę kopiować z DataSet do jakiego bądź ListBoxa, Edita itd wybrane komórki??


Nie możesz, DataSet współpracuje tylko z komponentami DataBase.


Tak chodziło mi o DBListBox i DBEdit
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez P@bLO » czwartek, 7 stycznia 2010, 14:28

Odświeżam..
Wie ktoś może jak "skopiować" dane z komórki DBGrid do DBListBox
Ktoś mi powiedział, że można zrobić to za używając Table1
tzn. Table1->Value[Nazwa_kolumny] lub ValueName , ale nie ma opcji.. ktoś wie jak to zrobić tym sposobem, jaką zastosować składnię lub innym sposobem
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: Bazy danych

Nowy postprzez P@bLO » czwartek, 7 stycznia 2010, 15:24

temat z przepisywaniem ogarnięty za pomocą FieldByName

banita wielkie dzięki za pomoc
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana


  • 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