Problema Dataset
Publicado por Juan Carlos Sanchez (2 intervenciones) el 09/02/2006 00:29:12
Hola a todos, tengo una duda que me esta comiendo, resulta que tengo un dataset que utilizo apenas me conecto a la base de datos llenando un treeview, el problema surge cuando quiero volver a utilizarlo. mando los procedures en el orden que se ejecutan.
al ejecutar el segundo manda errores como que no se puede usar un dataset abierto o que el recordset es EOF o BOF, de antemano Gracias.
procedure TForm1.Conexion_400AfterConnect(Sender: TObject);
var
Nodo1: TTreeNode;
Nodo2: TTreeNode;
CampoName: string;
begin
Screen.Cursor:=crHourGlass;
TreeView1.Items.Clear;
Nodo1 := Treeview1.Items.Add(nil, IpServer);
Nodo1.ImageIndex:=0;
Nodo1.SelectedIndex:=0;
arbol.Close;
CampoName:='SELECT DISTINCT TABLE_SCHEMA FROM QSYS2.SYSTABLES WHERE FILE_TYPE=''D'' ORDER BY TABLE_SCHEMA ASC';
arbol.SQL.Text:=CampoName;
If arbol.Active=True then
arbol.Close;
arbol.Open;
while not arbol.Eof do
begin
Nodo2:= TreeView1.Items.AddChild(Nodo1, arbol.Fields[0].DisplayText);
Nodo2.ImageIndex:=1;
Nodo2.SelectedIndex:=1;
arbol.Next;
end;
actDisconnect.Enabled:=True;
actConnect.Enabled:=False;
Nodo1.Expanded:=True;
Screen.Cursor:=crDefault
end;
procedure TForm1.TreeView1Click(Sender: TObject);
Var
Nodo: TTreeNode;
Nivel: integer;
CampoName: string;
begin
arbol.Close;
Nodo:=TreeView1.Selected;
If Nodo.Level=1 Then
begin
arbol.SQL.Text:='SELECT DISTINCT TABLE_NAME FROM QSYS2.SYSTABLES WHERE FILE_TYPE=''D'' AND TABLE_SCHEMA='''+Nodo.Text+'';
If arbol.Active=True Then
arbol.Close;
arbol.Open;
If arbol.RecordCount>0 then
begin
While not arbol.Eof Do
begin
Nodo2:=TreeView1.Items.Add(Nodo, arbol.fields[0].DisplayText);
Nodo2.ImageIndex:=2;
Nodo2.SelectedIndex:=2;
end
end;
end
end;
al ejecutar el segundo manda errores como que no se puede usar un dataset abierto o que el recordset es EOF o BOF, de antemano Gracias.
procedure TForm1.Conexion_400AfterConnect(Sender: TObject);
var
Nodo1: TTreeNode;
Nodo2: TTreeNode;
CampoName: string;
begin
Screen.Cursor:=crHourGlass;
TreeView1.Items.Clear;
Nodo1 := Treeview1.Items.Add(nil, IpServer);
Nodo1.ImageIndex:=0;
Nodo1.SelectedIndex:=0;
arbol.Close;
CampoName:='SELECT DISTINCT TABLE_SCHEMA FROM QSYS2.SYSTABLES WHERE FILE_TYPE=''D'' ORDER BY TABLE_SCHEMA ASC';
arbol.SQL.Text:=CampoName;
If arbol.Active=True then
arbol.Close;
arbol.Open;
while not arbol.Eof do
begin
Nodo2:= TreeView1.Items.AddChild(Nodo1, arbol.Fields[0].DisplayText);
Nodo2.ImageIndex:=1;
Nodo2.SelectedIndex:=1;
arbol.Next;
end;
actDisconnect.Enabled:=True;
actConnect.Enabled:=False;
Nodo1.Expanded:=True;
Screen.Cursor:=crDefault
end;
procedure TForm1.TreeView1Click(Sender: TObject);
Var
Nodo: TTreeNode;
Nivel: integer;
CampoName: string;
begin
arbol.Close;
Nodo:=TreeView1.Selected;
If Nodo.Level=1 Then
begin
arbol.SQL.Text:='SELECT DISTINCT TABLE_NAME FROM QSYS2.SYSTABLES WHERE FILE_TYPE=''D'' AND TABLE_SCHEMA='''+Nodo.Text+'';
If arbol.Active=True Then
arbol.Close;
arbol.Open;
If arbol.RecordCount>0 then
begin
While not arbol.Eof Do
begin
Nodo2:=TreeView1.Items.Add(Nodo, arbol.fields[0].DisplayText);
Nodo2.ImageIndex:=2;
Nodo2.SelectedIndex:=2;
end
end;
end
end;
Valora esta pregunta


0