Używam TADODataSet
(D7).
Nie tworzę trwałych pól w trybie projektowania z moim DataSet.Jak utworzyć pole wyszukiwania TDataSet w czasie wykonywania?
dsItems.CommandText := 'select ID, ItemName, UserIDCreate from Items';
dsUsers.CommandText := 'select ID, LoginName from Users'; // lookup dataset
Gdybym kliknij dwukrotnie dsItems
i „Dodaj wszystkie fileds”, a następnie kliknąć przycisk „Nowy złożony” i zdefiniować wyszukiwanie moje pole, wszystko działa bez zarzutu. Powstały dsItems
powinien zawierać: ID, ItemName, UserIDCreate, LoginName_Lookup
Jak mogę uniknąć robi to wszystko w czasie projektowania i dodać Lookup polu po/lub przed (nie wiem?) DataSet jest otwarty.
Innymi słowy: Jak mogę naśladować „Dodaj wszystkie fileds” a następnie „New złożone” dodanie odnośnika złożonej w czasie wykonywania?
UWAGA: uzyskać wyjątek, gdy uruchomiony Jana kod z IDE. Wyjątek występuje podczas próby otwarcia DataSet: EOleException with message 'An unknown error has occured'
.
function TCustomADODataSet.LocateRecord (ADODB.pas)
zgodne if FieldCount = 1 then FLookupCursor.Find...
jestem przyjmując odpowiedź na becouse przestrzegane programu działa.
Byłoby miło, gdyby ktoś mógł zweryfikować otrzymywanie (lub nie) wyjątku podczas uruchamiania formularza wewnątrz IDE.
Czy to znaczy, że najpierw trzeba stworzyć „cokolwiek innego pola trzeba przejść jak uporczywe pól” w trybie projektowania, aby uruchomić ten kod? – Vlad
Otrzymuję 'EOleException z komunikatem 'Wystąpił nieznany błąd' podczas próby otwarcia DataSet. – Vlad
Możesz dodać wszystkie trwałe pola w czasie wykonywania. Która część rzuca wyjątek i która linia? –