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]