![]() |
Probleme mit SQL-Queries und Anzeige in Treeview
Als erstes: ich habe 2 Units.
Die 1. Unit stellt die SQL-Abfragen in die Datenbank, die 2. soll die Afrage der Unit in einer TreeView anzeigen. Bei dem Code gehts um Query6: Unit 1:
Delphi-Quellcode:
procedure TForm1.PathTreeView1DblClick(Sender: TObject);
var n:string; begin query1.First; query1.MoveBy(Pathtreeview1.Selected.Index); n:=query1.FieldValues ['Kunde_ID']; form2:=TForm2.Create(self); //form2.PathTreeView1.NewInstance; form2.Query1.close; form2.Query2.close; form2.Query3.close; form2.Query4.close; form2.Query5.close; form2.Query6.close; Form2.Query1.SQL.Clear; Form2.Query2.SQL.Clear; Form2.Query3.SQL.Clear; Form2.Query4.SQL.Clear; Form2.Query5.SQL.Clear; Form2.Query6.SQL.Clear; Form2.Query1.SQL.add('select * from DB_Kunde where Kunde_ID='''+n+''''); Form2.Query2.SQL.add('select * from DB_Journal_Kunde where Kunde_ID='''+n+''''); Form2.Query3.SQL.add('select * from DB_Bank where Kunde_ID='''+n+''''); Form2.Query4.SQL.add('select * from DB_Kind where Kunde_ID='''+n+''''); Form2.Query5.SQL.add('select * from DB_Memo where Kunde_ID='''+n+''''); //Form2.Query6.SQL.Text:='select * from DB_Absicherung_Vermoegen where Kunde_ID='+n; Form2.Query6.SQL.add('select * from DB_Absicherung_Vermoegen where Kunde_ID='''+n+''''); Form2.Query1.open; form2.Query2.open; form2.Query3.open; form2.Query4.open; form2.Query5.open; form2.Query6.open; //form2.Query6.ExecSQL; //form2.Query6.active:=true; //form2.DataSource6.DataSet.Active :=true; form2.caption:=form2.Dbedit1.Text+ ' '+form2.dbedit2.Text ; end; So, hier jetzt Unit2
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
Var Bmrk : TBookMark; CurRecBuffer,RecBuffer : PChar; n,Index:integer; a,test,test2,m:String; begin test2:=query5.SQL.GetText; test:=query6.SQL.GetText; //Query6.active:=true; //query6.Prepare if query6.Active then //datasource6.DataSet. //datasource6.dataset.Open; //DataSource6.DataSet.Active :=false; //DataSource6.DataSet.Active :=true; //if datasource6.dataset.Active then begin with datasource6.DataSet do begin //open; CurRecBuffer := StrAlloc(RecordSize); RecBuffer := StrAlloc(RecordSize); GetCurrentRecord(CurRecBuffer); Bmrk := GetBookMark; DisableControls; First;n := 0; while not EOF do begin a:= 'Sach\' + FieldByName('Vers_Art').AsString; //PathTreeView1.Items.Add(FieldByName('Vers_Art').AsString); PathTreeview1.DestPath :=a; pathtreeview1.AddPath; PathTreeview1.Items.Item[n].ImageIndex := 1; PathTreeview1.Items.Item[n].SelectedIndex := 1; GetCurrentRecord(RecBuffer); if MemComp(RecBuffer,CurRecBuffer,RecordSize) then Index := n; Next;inc(n); end; GotoBookmark(Bmrk); FreeBookmark(Bmrk); EnableControls; // FChanging := true; // ItemIndex := Index; // FOldIndex := Index; // FChanging := false; StrDispose(RecBuffer); StrDispose(CurRecBuffer); end; Close; end; Zum Abschluss: query6.Active aus Unit2 wird nie Active, da in test:=query6.SQL.GetText; immer das SQL-Statement aus dem TQuery - Element in der Form2 steht. Active sollte es dann werden, wenn die Kunden_ID stimmt. Normalerweise sollte doch Form2.Query6.SQL.add('select * from DB_Absicherung_Vermoegen where Kunde_ID='''+n+''''); das Statement ändern und durch open ausgeführt werden, egal, was in der Form2 im TQuery drinsteht, oder? Egal. Vielleicht hat ja von Euch noch jemand ne Idee, ich reiss mir momentan die Haare raus. [edit=FuckRacism]Delphi-Syntax gesetzt. Mfg, FuckRacism[/edit] |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
bevor du eine glatze hast, formatiere erstmal den code. so ist er schwer zu lesen
raik |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
So besser?
Unit1
Delphi-Quellcode:
procedure TForm1.PathTreeView1DblClick(Sender: TObject);
var n:string; begin query1.First; query1.MoveBy(Pathtreeview1.Selected.Index); n:=query1.FieldValues ['Kunde_ID']; form2:=TForm2.Create(self); //Queries schliessen form2.Query1.close; form2.Query2.close; form2.Query3.close; form2.Query4.close; form2.Query5.close; form2.Query6.close; //Queries löschen Form2.Query1.SQL.Clear; Form2.Query2.SQL.Clear; Form2.Query3.SQL.Clear; Form2.Query4.SQL.Clear; Form2.Query5.SQL.Clear; Form2.Query6.SQL.Clear; //Queries hinzufügen Form2.Query1.SQL.add('select * from DB_Kunde where Kunde_ID='''+n+''''); Form2.Query2.SQL.add('select * from DB_Journal_Kunde where Kunde_ID='''+n+''''); Form2.Query3.SQL.add('select * from DB_Bank where Kunde_ID='''+n+''''); Form2.Query4.SQL.add('select * from DB_Kind where Kunde_ID='''+n+''''); Form2.Query5.SQL.add('select * from DB_Memo where Kunde_ID='''+n+''''); Form2.Query6.SQL.add('select * from DB_Absicherung_Vermoegen where Kunde_ID='''+n+''''); //Queries ausführen Form2.Query1.open; form2.Query2.open; form2.Query3.open; form2.Query4.open; form2.Query5.open; form2.Query6.open; form2.caption:=form2.Dbedit1.Text+ ' '+form2.dbedit2.Text ; end; Unit2
Delphi-Quellcode:
Eigentlich will ich ja net viel, das Proggi soll mir nur zum roten begin springen und es ausführen, was es leider net tut, und ich weiss net,warum.
procedure TForm2.FormCreate(Sender: TObject);
Var Bmrk : TBookMark; CurRecBuffer,RecBuffer : PChar; n,Index:integer; a,test,test2,m:String; begin //testvariablen test2:=query5.SQL.GetText; test:=query6.SQL.GetText; //Query6.active:=true; //query6.Prepare //falls DB offen if query6.Active then //datasource6.DataSet. //datasource6.dataset.Open; //DataSource6.DataSet.Active :=false; //DataSource6.DataSet.Active :=true; //if datasource6.dataset.Active then //Hier ist die Stelle, die nie erreicht wird begin with datasource6.DataSet do begin //open; CurRecBuffer := StrAlloc(RecordSize); RecBuffer := StrAlloc(RecordSize); GetCurrentRecord(CurRecBuffer); Bmrk := GetBookMark; DisableControls; First;n := 0; while not EOF do begin a:= 'Sach\' + FieldByName('Vers_Art').AsString; //PathTreeView1.Items.Add(FieldByName('Vers_Art').AsString); PathTreeview1.DestPath :=a; pathtreeview1.AddPath; PathTreeview1.Items.Item[n].ImageIndex := 1; PathTreeview1.Items.Item[n].SelectedIndex := 1; GetCurrentRecord(RecBuffer); if MemComp(RecBuffer,CurRecBuffer,RecordSize) then Index := n; Next;inc(n); end; GotoBookmark(Bmrk); FreeBookmark(Bmrk); EnableControls; // FChanging := true; // ItemIndex := Index; // FOldIndex := Index; // FChanging := false; StrDispose(RecBuffer); StrDispose(CurRecBuffer); end; Close; end; |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
begin
zu dem begin!!!!! |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
zu dem in HTML-Tags!!!
(bin neu hier) |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
kurz überflogen und folgendes ist mir aufgefallen:
Zitat:
string ist dann brauchste die ''' nicht |
Re: Probleme mit SQL-Queries und Anzeige in Treeview
ist tatsächlich ein String,
hab mein Problem jetzt gefunden, Probleme gelöst. Lag daran, dass der Aufruf in Unit1 die Form2 (Unit2) als erstes aufgerufen hat, in Form2 war das Dataset noch nicht Active, das wurde es erst später (nach form2:=TForm2.Create(self);) Trotzdem Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz