TADODataSet
(D7)を使用しています。
DataSet を使用してデザイン モードで永続フィールドを作成しません。
dsItems.CommandText := 'select ID, ItemName, UserIDCreate from Items';
dsUsers.CommandText := 'select ID, LoginName from Users'; // lookup dataset
[すべてのフィールドを追加] をダブルクリックしdsItems
、[新しいフィールド] をクリックしてルックアップ フィールドを定義すると、すべて正常に動作します。結果dsItems
には次が含まれている必要があります。ID, ItemName, UserIDCreate, LoginName_Lookup
設計時にこれをすべて行うことを避け、DataSet が開かれた後/または前に (わからない) ルックアップ フィールドを追加するにはどうすればよいでしょうか。
言い換えれば、 「すべてのフィールドを追加」をエミュレートしてから「新規フィールド」をエミュレートして、実行時にルックアップファイルを追加するにはどうすればよいですか?
注:
IDE から John のコードを実行すると、例外が発生します。DataSet: を開こうとすると、例外が発生しますEOleException with message 'An unknown error has occured'
。
function TCustomADODataSet.LocateRecord (ADODB.pas)
列をなしてif FieldCount = 1 then FLookupCursor.Find...
コンパイルされたプログラムが機能しているため、回答を受け入れています。
IDE 内でフォームを実行するときに例外が発生する (または発生しない) ことを誰かが確認できるとよいでしょう。