Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как добавить Таблицы Access в дерево TreeView [D7, Access]


daniyar ©   (2010-11-09 13:16:00) 

Здравствуйте! Помогите пожалуйста, как мне добавить таблицы из базы данных Access в TreeView. Чтобы эти таблицы отображались на дереве


Кайрат   (2010-11-30 09:13:00) [1]

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.


sniknik   (2010-11-09 17:45:00) [2]

это что будет, свой построитель/менеджер базы? тогда не обойтись без OpenSchema (даже список таблиц лучше получать с "оригинала", т.к. там еще доп параметры есть... могут понадобится)


И. Павел   (2010-11-09 13:41:00) [3]

Если требуется получить список таблиц базы, то можно использовать ADOConnection1.GetTableNames.


stas   (2010-11-09 13:33:00) [4]

в обычном treeview есть addNode вроде.
бывают dbTreeView еще.


Наверх

Титульная страница Поиск, карта сайта Написать письмо