Za dużo warunków w zapytaniu MySQL

0

Zrobiłem sobie przykładową bazę MySQL i program do jej obsługi w VC++.

Przez to zapytanie program się wysypuje w funkcji pobierającej wiersze z bazy (tak wywnioskowałem debugując):

SELECT 
zlecenia.numer_id, 
zlecenia.data_przyj, 
zlecenia.data_realiz, 
samochody.nr_rej_podw, 
samochody.marka, 
klienci.nazwisko, 
klienci.imie, 
klienci.nr_telefonu, 
pracownicy.login, 
zlecenia.zaplacone, 
zlecenia.termin_zaplaty 
FROM `zlecenia`, `samochody`, `klienci`, `pracownicy` 
WHERE zlecenia.zaplacone IN ('0', '2', '3') AND 
samochody.nr_klienta = klienci.numer_id AND 
zlecenia.id_samoch = samochody.numer_id AND 
zlecenia.id_klienta = klienci.numer_id AND 
zlecenia.id_pracow = pracownicy.numer_id 
ORDER BY data_realiz ASC;

Dopiero się uczę MySQL i nie wiem jak to inaczej zrobić...

1

ściagnij oficjalne oprogramowanie od MySQL, połącz sie z niego z serwerem MySQL i wykonaj to zapytanie i zobacz co zwróci.

0

@misiakufal i ogólnie wszyscy:

Zwraca dobrze w phpMyAdmin.

Ale słuchajcie teraz:
Zwraca dobrze w programie, ale tylko raz. Drugie kliknięcie przycisku == crash.
Obadałem, że nie wykonuje się w ogóle:

mysql_free_result(result);
mysql_close(myData);

Po pętli while ((row = mysql_fetch_row(result))), a przed funkcjami sprzątającymi dałem MessageBox i on się nie wyświetla.
Mój wniosek:
Nie wywołuje funkcji sprzątających, więc drugie kliknięcie przycisku == crash.

Łączenie z bazą, wykonywanie zapytania, pobieranie danych i wyświetlanie na liście jest w osobnej funkcji. Czy program może wyjść z funkcji przed wywołaniem funkcji sprzątających (bardzo dziwne, nie ma tam break, ani return...)?

0

Debuguje i kurde wychodzi, ze sie na klamrze wywala czy jak... Przenioslem to z funkcji, bo myslalem, ze moze zle wraca, ale dalej crash. W C# pokazuje opis wyjatku i linijke, a w C/WinAPI nie wiem jak sie mam ratowac.

1

Zamień łączenie na JOINa, a potem sprawdź - będziesz miał tylko 1 warunek.

0

To nie był problem z zapytaniem. Przy jednej zmiennej w debuggerze zauważyłem <Bad Ptr>... Wskaxniki...

Rozwiązane, ale dziękuję za zainteresowanie, macie +1 w górę.

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