Delphi 5, Oracle 12c
Na formie kładę kompomenty: TADOConnection
, 3 x TADOQuery
, TDataSource
, TDBGrid
, TButton
.
1 TADOQuery służy do zapytania głównego którego wynik ma być wyświetlany ( i modyfikowany ) w TDBGrid. Załóżmy dla prostoty takie maleństwo:
select id, kolumna1, kolumna2 from tabela
kolumna1 i kolumna2 to wartości kluczowe do innej tabeli ( słownik przeróżności, typu statusy itd )
2 pozostałe TADOQuery służą do zapytań pobierających dane z tego słownika przeróżności ( na potrzeby Lookup'ów w gridzie )
Łączę te komponenty ze sobą: ADOconnection--> ADOquery --> dataSource --> grid
plus
te 2 dodatkowe query łączę z ADOconnection
Pod przyciskiem dodaję tylko 1 linijkę:
ADOquery1.Insert;
Ustawiam wszystkim query Active na True. Na liście kolumn ADOquery1 dodaję kolumnę lookup_kolumna1
i lookup_kolumna2
którym KeyField
ustawiam jako kolumna1
i kolumna2
a LookupKeyField
i LookupResulField
zgodnie z kolumnami z tych lookupowych SQLek i dodaję te 2 nowe kolumny lookupwe do grida. Czyli jakby prawidłowo.
Uruchamiam aplikację, wciskam przycisk ( czyli robię ADOquery1.Insert ) i na gridzie pojawia się pusty wiersz. I w tym pustym wierszu po wpisaniu danych do jakiejkolwiek kolumny dostaję komunikat
Project1.exe raised exception class EOLEException with message "Wystąpił nieznany błąd" Process stopped. Use Step or Run to continue.
Wystarczy, że z listy pól TADOquery1
i grida usunę któregokolwiek lookup'a a wszystko działa jak należy.
Gdzieś coś popełniam nie tak i nie mogę się tego dopatrzeć. Pomocy bo ładnych kilka godzin już przy tym spędziłem próbując przeróżne dziwy i nic.