var
Temp: TADOQuery;
NodeInfo: TCompany;
FParentNode: TTreeNode;
begin
Temp := TADOQuery.Create(self);
Temp.Connection := dm.con1;
Temp.SQL.Text := 'select * from bt_corp';
Temp.Open;
tree_Company.Items.BeginUpdate;
while not Temp.Eof do
begin
Application.ProcessMessages;
NodeInfo := TCompany.Create;
NodeInfo.CORP_CODE := Temp.fieldbyname('CORP_CODE').AsString;
NodeInfo.SUPER_CORP_CODE := Temp.fieldbyname('SUPER_CORP_CODE').AsString;
NodeInfo.CORP_NAME := Temp.fieldbyname('CORP_NAME').AsString;
NodeInfo.ADDR := Temp.FieldByName('ADDR').AsString;
NodeInfo.LINK_MAN := Temp.FieldByName('LINK_MAN').AsString;
NodeInfo.TEL := Temp.FieldByName('TEL').AsString;
NodeInfo.SIMPLE_NAME := Temp.FieldByName('SIMPLE_NAME').AsString;
NodeInfo.E_NAME := Temp.FieldByName('E_NAME').AsString;
NodeInfo.FAX := Temp.FieldByName('FAX').AsString;
NodeInfo.EMAIL := Temp.FieldByName('EMAIL').AsString;
NodeInfo.CITY := Temp.FieldByName('CITY').AsString;
NodeInfo.PROV := Temp.FieldByName('PROV').AsString;
NodeInfo.RMK := Temp.FieldByName('RMK').AsString;
FParentnode := tree_Company.Items.AddChildObject(AParentNode,Temp.fieldbyname('CORP_NAME').AsString, NodeInfo);
FParentnode.data := NodeInfo;
RefreshTreeView(FParentnode,Temp.fieldbyname('CORP_CODE').AsString);
Temp.Next;
end;
tree_Company.Items.EndUpdate;
FreeAndNil(Temp);在while循环体里报“ORA-01000: 超出打开游标的最大数” 错误,请问如何解决?
Temp: TADOQuery;
NodeInfo: TCompany;
FParentNode: TTreeNode;
begin
Temp := TADOQuery.Create(self);
Temp.Connection := dm.con1;
Temp.SQL.Text := 'select * from bt_corp';
Temp.Open;
tree_Company.Items.BeginUpdate;
while not Temp.Eof do
begin
Application.ProcessMessages;
NodeInfo := TCompany.Create;
NodeInfo.CORP_CODE := Temp.fieldbyname('CORP_CODE').AsString;
NodeInfo.SUPER_CORP_CODE := Temp.fieldbyname('SUPER_CORP_CODE').AsString;
NodeInfo.CORP_NAME := Temp.fieldbyname('CORP_NAME').AsString;
NodeInfo.ADDR := Temp.FieldByName('ADDR').AsString;
NodeInfo.LINK_MAN := Temp.FieldByName('LINK_MAN').AsString;
NodeInfo.TEL := Temp.FieldByName('TEL').AsString;
NodeInfo.SIMPLE_NAME := Temp.FieldByName('SIMPLE_NAME').AsString;
NodeInfo.E_NAME := Temp.FieldByName('E_NAME').AsString;
NodeInfo.FAX := Temp.FieldByName('FAX').AsString;
NodeInfo.EMAIL := Temp.FieldByName('EMAIL').AsString;
NodeInfo.CITY := Temp.FieldByName('CITY').AsString;
NodeInfo.PROV := Temp.FieldByName('PROV').AsString;
NodeInfo.RMK := Temp.FieldByName('RMK').AsString;
FParentnode := tree_Company.Items.AddChildObject(AParentNode,Temp.fieldbyname('CORP_NAME').AsString, NodeInfo);
FParentnode.data := NodeInfo;
RefreshTreeView(FParentnode,Temp.fieldbyname('CORP_CODE').AsString);
Temp.Next;
end;
tree_Company.Items.EndUpdate;
FreeAndNil(Temp);在while循环体里报“ORA-01000: 超出打开游标的最大数” 错误,请问如何解决?
Temp.close;
Temp.free;
试一下