S
starfloat
Unregistered / Unconfirmed
GUEST, unregistred user!
表Dept,有两个字段:dept_id,dept_name
表Employee,有一个字段存dept_id
在显示员工表信息时,要将dept_id换成dept_name显示,
在新增员工信息时,要将dept_name转换成dept_name保存。
我的想法是:
为了在dept_id和dept_name之间快速的转换,将dept表中的内容一次性取出来,放在一个东东里保存着,需要转换时到这里里查。而不用在Employee,Dept两个表去联合查询。
为此,我使用一个THashedStringList来保存这个表的内容。而THashedStringList容纳的必须是TObject对象。我用一个类TStringObject将String包装成TObject:
type
TStringObject=class(TObject)
private
Value:String
public
constructor Create(aValue:String)
procedure SetValue(aValue:String)
function GetValue:String
end
.....
在我的主Form中,定义一个THashedStringList:
var
depts:THashedStringList
以下是我的初始化depts的过程
var
pso:^TStringObject
i:Integer
qry:TADOQuery
begin
//设置qry的连接属性等等..略
with qry do
begin
Close
SQL.Clear
SQL.Add('select dept_id,dept_name from Dept order by id')
Open
if RecordCount > 0 then
begin
First
while not EOF do
begin
New(pso)
pso.SetValue(Fields['dept_name'].AsString)
depts.addObject(Fields['dept_id'].AsString,@pso)
Next
end
end
end
end
上面的过程不知道怎么回事,老是有问题,请帮我改一改.是不是里面的指针的用法有问题??谢谢!!
另外,关于key-value转换这种问题大家应该经常碰到的,显示时用value,保存时保存其key,大家一般是怎么处理的???请提示点思路。谢谢!!
表Employee,有一个字段存dept_id
在显示员工表信息时,要将dept_id换成dept_name显示,
在新增员工信息时,要将dept_name转换成dept_name保存。
我的想法是:
为了在dept_id和dept_name之间快速的转换,将dept表中的内容一次性取出来,放在一个东东里保存着,需要转换时到这里里查。而不用在Employee,Dept两个表去联合查询。
为此,我使用一个THashedStringList来保存这个表的内容。而THashedStringList容纳的必须是TObject对象。我用一个类TStringObject将String包装成TObject:
type
TStringObject=class(TObject)
private
Value:String
public
constructor Create(aValue:String)
procedure SetValue(aValue:String)
function GetValue:String
end
.....
在我的主Form中,定义一个THashedStringList:
var
depts:THashedStringList
以下是我的初始化depts的过程
var
pso:^TStringObject
i:Integer
qry:TADOQuery
begin
//设置qry的连接属性等等..略
with qry do
begin
Close
SQL.Clear
SQL.Add('select dept_id,dept_name from Dept order by id')
Open
if RecordCount > 0 then
begin
First
while not EOF do
begin
New(pso)
pso.SetValue(Fields['dept_name'].AsString)
depts.addObject(Fields['dept_id'].AsString,@pso)
Next
end
end
end
end
上面的过程不知道怎么回事,老是有问题,请帮我改一改.是不是里面的指针的用法有问题??谢谢!!
另外,关于key-value转换这种问题大家应该经常碰到的,显示时用value,保存时保存其key,大家一般是怎么处理的???请提示点思路。谢谢!!