Einzelnen Beitrag anzeigen

heiopanst

Registriert seit: 28. Feb 2004
5 Beiträge
 
#1

Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 17:15
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]
  Mit Zitat antworten Zitat