Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка БД (volgaDB) в VirtualTreeView 
V
    Опции темы
Чoо
Дата 28.9.2009, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



вижу только один путь решения. Загружать базу через компонент VolgaTable, проходить по всем записям таблицы и каждую запись заносить в список. После этого список отправлять в VirtualTree. Как-нибудь иначе это можно сделать или лучше всего делать, так как описал выше?


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
former
Дата 28.9.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Чoо, вот, смотри сколько всего полезного.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Чoо
Дата 28.9.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



former, посмотрелsmile. Вобем пошел несколько другим путем. Базу сделал пез родительских полей, отображаю ее просто в виде таблички, только через treeview.
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, VirtualTrees, Grids, DBGrids, DB, VolgaTbl, VolgaQry, StdCtrls;

type
  TForm1 = class(TForm)
    VolgaQuery1: TVolgaQuery;
    VolgaDatabase1: TVolgaDatabase;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    VT: TVirtualStringTree;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure VTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: WideString);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
type
  PRegexNode = ^TRegexNode;
  TRegexNode = record
    color,
    typeDtrmn,
    regular,
    extansion,
    groups,
    SimbolsCount,
    nodeId: WideString;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  NewNode: PVirtualNode;
  NewRegex: PRegexNode;
  i:integer;
begin
  VolgaQuery1.Last;
  VolgaQuery1.First;
  for i:=0 to VolgaQuery1.RecordCount-1 do begin
    NewNode := VT.AddChild(VT.FocusedNode);
    NewRegex := VT.GetNodeData(NewNode);
    if Assigned(NewRegex) then
      with NewRegex^ do
      begin
        color:=VolgaQuery1.FieldByName('color').AsString;
        typeDtrmn:=VolgaQuery1.FieldByName('typeDtrmn').AsString;
        regular:=VolgaQuery1.FieldByName('Regular').AsString;
        extansion:=VolgaQuery1.FieldByName('Extension').AsString;
        groups:=VolgaQuery1.FieldByName('groups').AsString;
        SimbolsCount:=VolgaQuery1.FieldByName('simbolscount').AsString;
        nodeId:=VolgaQuery1.FieldByName('nodeId').AsString;
      end;
  VolgaQuery1.next;
  end;
end;

procedure TForm1.VTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
  VTEditNode: PRegexNode;
begin
  case Column of
    0:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.color;
    end;
    1:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.typeDtrmn;
    end;
    2:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.regular;
    end;
    3:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.extansion;
    end;
    4:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.groups;
    end;
    5:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.SimbolsCount;
    end;
    6:
    begin
      VTEditNode := Sender.GetNodeData(Node);
      CellText := VTEditNode^.nodeId;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  VT.NodeDataSize := SizeOf(TRegexNode);
end;

end.


как видно, работаю с query. Ладно, базу отобразил, правда не деревом. Дерево планировал строить по полю Groups. Теперь обдумываю как вносить изменения в базу, результаты размышлению буду отписывать здесь, если будут проблемыsmile

Добавлено через 1 минуту и 57 секунд
да, DBGrid я на форму положил, что бы можно было просмотреть базу данных "как есть"


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.