Treeviewde veritabanından listelenen alanlara nasıl bağlantı yapılabilir

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Musdi42
Üye
Mesajlar: 27
Kayıt: 02 Nis 2007 12:42

Treeviewde veritabanından listelenen alanlara nasıl bağlantı yapılabilir

Mesaj gönderen Musdi42 »

merhaba arkadaşlar

treeviewde veritabanından listelenen alanlara bağlantı yapmak istiyorum
2 adet tablom var katagoriler ve kayıtlar şeklinde yapmak istediğim şey sık kullandığım siteleri ve delphi kodlarını ve öneli notlarımı katagoriler halinde arşivlemek yani bir nevi kodbank benzeri bir şey yapmak istiyorum nettede araştırdım ado için bazı örneklerle sadece katagorileri listeyebildim.

örnek
+Delphi /ana katagori
-Arayüz / alt kategori
-Form / alt kagori1
-Mdi / alt kategori2

+Film siteleri
-Hd filmler
-Diğer filmler

yani örnek olarak delphiye tıkladığımda arayüz form mdi alanlarına bağlı kayıtlar listelenecek forma tıkladığımda ise sadece formla ilgili kayıtlar listelenecek günler araştıyorum hiç bir türkçe kaynak ve örnek bulamadım hatta ingilizce bile bulamadım nedir bunun mantığı nasıl yapılır kafama takıldı master detail olmadan böyle birşey nasıl yapılabilir

Veri tabanı :sql lite
Kullandığım kodlar=


var
FrmMain: TFrmMain;
id:TStringList;
index:Integer;
implementation

{$R *.dfm}
function GetNode(Parent_id: String): TTreeNode;
var
i: Integer;
s1,s2: String;
begin
Result:=nil;
index:=-1;
for i:=0 to FrmMain.Tree.Items.Count-1 do
begin
s1:= id.Strings;
if s1 = Parent_id then
begin
Result:=FrmMain.Tree.Items.Item;
s2:= Result.Text;
index:=i;
Break;
end;
end;
end;



procedure TFrmMain.FormCreate(Sender: TObject);
var
NodeX: TTreeNode;
begin
if Tree.Items.Count > -0 then Tree.Items.Clear;
qrcategory.SQL.Clear;
qrcategory.SQL.Add('Select * From category Order By Parent_id');
qrcategory.Open;
if Not qrcategory.IsEmpty then
begin
qrcategory.First;

try
id:=TStringList.Create;
id.Clear;
while Not qrcategory.Eof do
begin
if qrcategory.FieldByName('Parent_id').IsNull then
begin
NodeX:=Tree.Items.AddChild(nil, Trim(qrcategory.FieldByName('name').AsString));
id.Add(Trim(qrcategory.FieldByName('id').AsString));
end
else
begin
NodeX:=Tree.Items.AddChild(GetNode(Trim(qrcategory.FieldByName('parent_id').AsString)),
Trim(qrcategory.FieldByName('name').AsString));
id.Insert(index + (NodeX.Index+1), Trim(qrcategory.FieldByName('id').AsString));
end;

qrcategory.Next;
end;
finally
id.Free;
end;
end

end;


end.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Treeviewde veritabanından listelenen alanlara nasıl bağlantı yapılabilir

Mesaj gönderen mrmarman »

Bulduğun kodları çözümlemek için yeterli altyapın oluşana kadar bir akış ile baştan ne yapmak istediğin üzerinden yürümelisin.
Güzelce yapmak istediğini sıralamışsın. Şimdi bunun için ihtiyaçlarını belirle.
- Kendine şu soruyu sor, hangi anahtarlara ihtiyacım var ?!
- KayıtNo : Her kayda ulaşabileceğin başat unsur.
- Tür, Kategori, Başlık ve son olarak İçerik lazım.
- TreeView ile Tur / Kategori / Başlık ağaç dalı oluşacak ve bu başlığa KayıtNo bindirilecek.
- Ne zaman kullanıcı başlığa ulaşırsa bindirilmiş KayıtNo'lu kayıt veritabanından okunarak ekrana yansıtılacak.

Şimdi akış hazır olduğuna göre veritabanını kurgulamaya başlayabilir, sonra da sonuçları TreeView'e aktarmak için çalışmaya başlayabilirsin.
Resim
Resim ....Resim
Musdi42
Üye
Mesajlar: 27
Kayıt: 02 Nis 2007 12:42

Re: Treeviewde veritabanından listelenen alanlara nasıl bağlantı yapılabilir

Mesaj gönderen Musdi42 »

Teşekkürler hocam tavsiyelerin için buna benzer bir şeyi yıllar önce master detail tablo kullanarak ve dbtreeviw ile çok kolay bir şekilde
yapmıştım. ama burada gerçekten takıldım veri tabanını hazırladım herşey hazır ama mantığını kuramadım.

detay tablom
recno :
id:
catergory_id:
title;
keywords;
vs vs

katagori tablom
id
parent_id
name
Recno

Parent_id alanı -1 olanlar ana kategori
id alanı ise 1 den başlayarak gidiyor

Örnek:
Ana Katagori id :1 Parent_id : -1 Ana Katagori
Alt Kategori id :2 Parent_id : 1 Alt katagori ana katagoriye bağlı a bu bu şekilde devam ediyor

Kategori ve listeleme olayı bu şekilde tamam treeviewde listenen katagorilere kayıt no ları nasıl bindirebilirim yani arasındaki bağlantıyı nasıl
sağlayabilirim gerçekten aklıma birşey gelmiyor. özellikle bağlantı olayı çok kafamı karıştırıyor hadi diğerleri bir şekilde yapılır
Cevapla