MySql.Zapisanie Id z bazy do zmiennej w celu póżniejszego wykorzystania

0

Witam.
Problem jest następujący:
Powiedzmy ze mam 2 tabelki: Trener i klient
W tabeli Trener mam: Id_trener,Imie,Nazwisko
W tabeli klient mam: Id_klient,Imie,Nazwisko,Id_trener

Udało mi się już zrobić ze po wybraniu trenera wyskakują mi jego klienci.Tylko teraz mam problem zeby przy dodawaniu nowego klienta w polu Id_trenera było dodane Id_trenera z tabeli Trener.
Myslałem zeby to własnie zrobic w ten sposób ze przy wyborze trenera jego Id_trenera było przechowywane w jakiejs zmiennej a pózniej sobie z tamtąd wyciągne tą daną i i wstawie do Id_trenera z tabeli klient.

próbowałem juz tak:
int pom = Form3->SQLDataSet1->CommandText="Select Id_trener FROM trener WHERE Imiet = 'Zbychu'";

lecz niestety program wysypuje takie błędy :
[BCC32 Error] Unit3.cpp(114): E2492 Properties may only be assigned using a simple statement, e.g. "prop = value;"
[BCC32 Error] Unit3.cpp(114): E2034 Cannot convert 'UnicodeString' to 'int'
[BCC32 Warning] Unit3.cpp(118): W8004 'pom' is assigned a value that is never used

Póżniej po przeczytaniu wielu różnych Forum dowiedziałem się ze mozna wyciagnąc id poprzez SCOPE_IDENTITY() lub LAST_INSERT_ID() ale nie mam pojęcia jak tego uzyc....;|

Proszę o pomoc drodzy forumowicze...;)
Dodam ze programuje w C++ a baze mam w Mysql'u

0

a cóż to za zapis

int a = string b = "dupa";

???

0

Jesli nie chcesz pomóc to OK ale przynajmniej nie zasmiecaj tematu...

0

Nie wiem jakiej biblioteki używasz do gui. Zakładam że przy tworzeniu nowego klienta masz combobox z trenerami. Więc do combo podpinasz kolekcję, jako wartość wyświetlana jest imię+nazwisko, a jako klucz id trenera. Po wybraniu trenera pobierasz id wybranego itemu w combo i już masz wszystko żeby wykonać insert nowego klienta.
Jeśli chodzi o SCOPE_IDENTITY() lub LAST_INSERT_ID() to raczej nie zrozumiałeś tematu. Poczytaj jeszcze.

0

Nie wiem z czego korzystasz do łączenia się z bazę, ale używasz to źle. Ten zapis "int pom = Form3->SQLDataSet1->CommandText="Select Id_trener FROM trener WHERE Imiet = 'Zbychu'"; " jest w ogóle pozbawiony sensu, nie mówiąc już, że składniowo też do niczego się nie nadaje.
Tu ustawiasz polecenie SQL do wykonania Form3->SQLDataSet1->CommandText="Select Id_trener FROM trener WHERE Imiet = 'Zbychu'";
Potem trzeba je wykonać, a funkcja która to zrobi zwróci pewnie jakiś recordset, z którego będzie trzeba wyciągnąć to ID z pierwszej kolumny.

Chyba nie zrozumiałeś tego API z którego korzystasz łącząc się z SZDB

0

Wiec tak juz odpisuje ....
Z bazą łącze się za pomocą Phpmyadmin
Trenerów wyswietlam w Listview i po zaznaczeniu jednego z nich przechodzi mi do listy jego klientów.
Wiec tak problem po niekąd rozwiązałem tzn.
takim zapytaniem wyswietlam sobie kleintów danego trenera :
Form3->SQLDataSet1->CommandText="Select k.Id_trener,k.Imie,k.Nazwisko,k.Adres,k.Tel,t.Id FROM klient AS k INNER JOIN trener AS t ON ( k.Id_trener = t.Id AND t.Imiet='"+Form3->ListView1->Selected->Caption+"')";

i w ponizej zrbiłem cos takiego iż zrobiłem sobie zmienną pomocniczą:
int pom = Form3->SQLDataSet1->FieldByName ("Id")->AsInteger ;

oraz ustawiłem tą zmienną jako globalną i gdy teraz wpisuje ten kod który tak mi sie wydawało wrzuci ten Id z zmiennej pom do Id_trener:
Form3->SQLDataSet1->CommandText="INSERT INTO klient SET Imie='"+Form5->Edit1->Text+"',Nazwisko='"+Form5->Edit1->Text+"',Id_trener = pom " ;
tak się niestety nie dzieje.
Nawet gdy zrobiłem sobie zmienną : int liczba = 4 o podstawiłem do Id_trener = liczba to tez nie działa...;| cos musze zle zapytanie to powyzej robic ale nie wiem co jest zle...moze jakies macie propozycje??

0
zhalba3 napisał(a)

Jesli nie chcesz pomóc to OK ale przynajmniej nie zasmiecaj tematu...

napisałeś

int pom = Form3->SQLDataSet1->CommandText="Select Id_trener FROM trener WHERE Imiet = 'Zbychu'";

nie wiem czy ślepy jesteś czy co ale zrobiłeś dokładnie tak zmienna_typu_int przypisz_wartość zmienna_typu_string przypisz_wartość string
I dokładnie o to ci się pluł kompilator.
2. jesteś tu nowy i to ty chcesz pomocy. Nie używasz znaczników < code> < /code> a kod, który wstawiasz wygląda jak kupa. Trzeba się zastanawiać gdzie się string kończy, gdzie zaczyna, co jest zmienną a co ciągiem
3. gdzie niby tą zmienną pom wstawiłeś w tym kodzie bo ja jej nigdzie n ie widzę

Form3->SQLDataSet1->CommandText="INSERT INTO klient SET Imie='"+Form5->Edit1->Text+"',Nazwisko='"+Form5->Edit1->Text+"',Id_trener = pom " ;
zhalba3 napisał(a)

Z bazą łącze się za pomocą Phpmyadmin
Trenerów wyswietlam w Listview i po zaznaczeniu jednego z nich przechodzi mi do listy jego klientów.
Wiec tak problem po niekąd rozwiązałem tzn.
takim zapytaniem wyswietlam sobie kleintów danego trenera :
Form3->SQLDataSet1->CommandText="Select k.Id_trener,k.Imie,k.Nazwisko,k.Adres,k.Tel,t.Id FROM klient AS k INNER JOIN trener AS t ON ( k.Id_trener = t.Id AND t.Imiet='"+Form3->ListView1->Selected->Caption+"')";
...

odkąd to w phpmyadmin są formy, datasety itp cuda?

1 użytkowników online, w tym zalogowanych: 0, gości: 1