![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить Таблицы 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 еще.