Конференция "Базы" » Как вывести в TreeView базу данных SQL Server с таблицами [D7, MSSQL]
 
  • daniyar (11.11.10 09:04) [0]
    Здравствуйте! Я создал базу данных. Теперь мне необходимо вывести в TreeView базу данных SQl Server  с которым я работаю вместе с таблицами. Чтобы при нажатии на базу в дереве раскрывались его таблицами. Пожалуйста помогите. Если можно с исходником
  • Jeer © (11.11.10 09:38) [1]
    Не парься, а бери, к примеру:
    - Enterprise Manager для MSSQL;
    - IBExpert для Firebird;
    - Enterprise Manager Console для Oracle
    и т.д.
  • clickmaker © (11.11.10 11:17) [2]
    н-р, TADOConnection GetTableNames
  • sniknik © (11.11.10 13:17) [3]
    > н-р, TADOConnection GetTableNames
    http://pda.delphimaster.net/?id=1289297780&n=1
  • Кайрат (30.11.10 09:04) [4]
    unit UDBTree;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, DB, ADODB, StdCtrls, ComCtrls, ImgList, Grids, DBGrids;

    type
     TForm1 = class(TForm)
       TreeView1: TTreeView;
       btTreeRefresh: TButton;
       ADOConnection1: TADOConnection;
       ImageList1: TImageList;
       ADOQuery1: TADOQuery;
       DataSource1: TDataSource;
       DBGrid1: TDBGrid;
       procedure btTreeRefreshClick(Sender: TObject);
       procedure TreeView1Changing(Sender: TObject; Node: TTreeNode;
         var AllowChange: Boolean);
     private
       { Private declarations }
       tnParent : TTreeNode;    // Корневой узел
       tnChilde : TTreeNode;     // Узлы таблиц
       FTableName : string[30]; // Хранит уже выбранную таблицу
     public
       { Public declarations }
     end;

    var
     Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.btTreeRefreshClick(Sender: TObject);
    var
     st : TStringList;
     i : Integer;
    begin
     Screen.Cursor := crHourGlass;
     TreeView1.Items.BeginUpdate;
     TreeView1.Items.Clear;
     tnParent := TreeView1.Items.Add(nil, 'Корневой элемент');
     tnParent.SelectedIndex := 0;
     tnParent.ImageIndex := 0;
     st := TStringList.Create;
     ADOConnection1.GetTableNames(st, false);
     try
       for i := 0 to st.Count - 1 do
       begin
         tnChilde := TreeView1.Items.AddChild(tnParent, st.Strings[i]);
         tnChilde.SelectedIndex := 1;
         tnChilde.ImageIndex := 1;
       end;
     finally
       st.Free;
       TreeView1.Items.EndUpdate;
       Screen.Cursor := crDefault;
     end;
    end;

    procedure TForm1.TreeView1Changing(Sender: TObject; Node: TTreeNode;
     var AllowChange: Boolean);
    begin
     case Node.Level of
       0 : Abort;
       1 :
       begin
         if FTableName = Node.Text then
           Exit;
         FTableName := Node.Text;
         ADOQuery1.Close;
         ADOQuery1.SQL.Text := 'Select * ' +
                               'From ' + Node.Text;
         ADOQuery1.Open;
       end;
     end;
    end;

    end.
  • Ega23 © (30.11.10 10:23) [5]

    > Кайрат   (30.11.10 09:04) [4]


    Ну да, как-то так. Только я бы ещё  ADOConnection1.GetTableNames(st, false) и ADOQuery1.Open  в try..except обернул бы.
    И TADOQuery на TADODataSet заменил бы. И всё вот это
    Screen.Cursor := crHourGlass;
    TreeView1.Items.BeginUpdate;
    TreeView1.Items.Clear;
    tnParent := TreeView1.Items.Add(nil, 'Корневой элемент');
    tnParent.SelectedIndex := 0;
    tnParent.ImageIndex := 0;
    st := TStringList.Create;


    в разные try..finally обернул бы.
 
Конференция "Базы" » Как вывести в TreeView базу данных SQL Server с таблицами [D7, MSSQL]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]