我正在使用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
如何避免在设计时执行所有这些操作,并在打开数据集之后/之前添加查找字段?换句话说,如何模拟“添加所有字段”,然后“新建字段”以在运行时添加查找字段?注意:运行 John 的代码时会出现异常。当尝试打开数据集时出现异常:
EOleException with message 'An unknown error has occured'
。
TCustomADODataSet.LocateRecord 函数 (ADODB.pas)
中的第 if FieldCount = 1 then FLookupCursor.Find...
行。接受答案是因为编译后的程序可以工作。如果有人能验证在IDE内部运行时是否会出现异常,那就太好了。