Witam. Ostatnio probuje moich sil w robieniu programow do obslugi baz danych w delphi ale ze jestem poczatkujacym programista to mam kilka problemow, ktore mam nadzieje pomozecie mi rozwiazac.
1. powiedzmy ze chcem wyswietlic rekordy ktore ujalem w kodzie SQL IBQuery,stworzony jest tam jeden parametr, ktory odwoluje sie do dbcomboboxa kod wyglada nastepujaco :
IBQuery.Params[0].AsString:=DBLookupComboBox1.Text;
no i to dziala po wybraniu pewnej rzeczy w comboboxie wyswietla mi sie to czego szukam.
chcialbym jednak zrobic tak aby wyswietlaly mi sie rzeczy nie po wybraniu cos z comboboxa lecz po wybraniu pewnego rekordu z DBGrida, ktory bedzie sie laczyl z parametrem IBQuery tak jak combobox. ten parametr to powiedzmy NR_KONCERTU. i mialem wlasnie wypelniony combobox wszystkimi numerami koncertu i powybraniu danego wyswietlaly i sie szcegolowe informacje. jednak teraz chcem nacisnac na dany rekord wdbgridzie i aby wyswietlalo sie to samo. w tym gridzie jedna z kolumn to wlasnie NR_KONCERTU. jak mam zmienic powyzszy kod???
IBQuery.Params[0] << to napewno ale czym jest to assstring i jak powinienem je zmienic?? po przypisaniu dajemy nazwe grida czyli np DBGrid1 no i co po kropce???text chyba nie bedzie dzialac zreszta tu tez mam dylemat co to dokladnie jest???
no i ktore zdarzenie w gridzie mam oprogramowac??? OnCellClick??? czy inny?
2.moj drugi problem to chyba nie cos trudnego jednak kompletnie nei wiem co mam zmienic. mam DBMemo wpisuje pewna fraze i w gridzie obok wyswietla mi sie to o chcem.i wszystko dziala tylko jedyny mankament to to ze musze do tekstu co tam jest domyslnie, dopisac ten ktory chchem szukac, a stary domyslny zmazac, wtedy szuka i wyswietla.jednak nie moge sobie na wstepie wyczyscic pola DBMemo gdyz wyskakuje mi od razu blad i wylacza sie program.co zrobic zeby tak sie nie dzialo???
z gory dzieki za pomoc!!!

- Rejestracja:ponad 21 lat
- Ostatnio:prawie 13 lat
- Postów:7923
http://www.delphi3000.com/articles/article_540.asp?SK= tylko POMYŚL najpierw i wstaw SWOJE SQLe
a na przyszłość to się nazywa Master-Detail
ok zrobilem, ale wyskakuje mi blad ze >>>IBQuery Field 'NR_KONCERTU' not found<<<. to blad wychodzacy z programu czy z bazy??...to pole na pewno sie tak nazywa i istnieje, ale to wyglada na to jakby bylo zupelnie inaczej...ale sprawdzilem na innych tabelach ta metode i dziala. gdzie mam szukac bledu????
Pozdro!
to tak o:
Polaczylem dwie tabele (Koncerty, kapele) na zasadzie "many to many" no i stworzyla mi sie nowa tabela (numery_kapel) pomiedzy nimi
to moje tabele:
table Kapele (
Nr_kapeli INTEGER not null,
Nazwa_kapeli VARCHAR(20) not null,
Styl_muzyczny VARCHAR(20) not null,
constraint PK_KAPELE primary key (Nr_kapeli)
);
table Koncerty (
Nr_koncertu INTEGER not null,
Nr_skladu INTEGER not null,
Data_koncertu DATE not null,
Miasto VARCHAR(20) not null,
Miejsce VARCHAR(20) not null,
constraint PK_KONCERTY primary key (Nr_koncertu)
);
table Numery_kapel (
Nr_koncertu INTEGER not null,
Nr_kapeli INTEGER not null,
constraint PK_NR primary key (Nr_koncertu, Nr_kapeli)
IBQuery1 "select * from koncerty"
IBQuery2 "select a.nazwa_kapeli, a.styl_muzyczny from kapele a join numery_kapel b on a.nr_kapeli=b.nr_kapeli where b.nr_koncertu=:Nr_koncertu"
Datasource1.DataSet.IBQuery1
DataSource2.DataSet.IBQuery2
no i w IBQuery2.DataSource wybralem Datasource1
nie mam dalej pojecia gdzie moze byc blad?:/
ok juz dziala:)...wielkie dzieki za pomoc!
jeszcze chcialem was zapytac o DBMemo.gdzie sie ustawia aby mozna bylo w programie wprowadzac tekst do tego komponentu???...
powiedzmy ze w IBQuery2 odznaczylem w DataSource i nie ma juz patentu master-detail. chcĘ teraz aby w DBMemo wpisac nr_koncertu ktory bedzie laczyl sie z parametrem z kodu SQL IBQuery2 .
-w IBQuery2 ten sam SQL
-wrzucam DBMemo w DataSource wybieram DataSource1
-w DataField wybieram NR_koncertu
- MaxLength zwiekszam do 10
- w DBMemo w zdarzeniu OnChange wpisuje
IBQuery2.Close;
IBQuery2.Params[0].AsString:=DBMemo1.Text;
IBQuery2.Open;
i kiedys mi to dzialalo z jednym malym mankamentem...nie moglem wyczyscic pola, bo wyskakiwal mi blad i po programie. dopiero jak np domyslnie byl numer koncertu 2, a ja chcialem wybrac 6 to do tej dwojki musialem dopisac 6 i mialem 26 po czym musialem usunac dwojke. teraz nie wiem czemu w ogóle nie moge nic wpisywac do DBMemo. wiecie moze jak zrobic aby mozna bylo wpisywac tekst i aby nie wyskakiwal blad po wyczyszczeniu pola????
z gory dzieki!!!
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.