AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit SQL-Queries und Anzeige in Treeview
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit SQL-Queries und Anzeige in Treeview

Ein Thema von heiopanst · begonnen am 28. Feb 2004 · letzter Beitrag vom 1. Mär 2004
Antwort Antwort
heiopanst

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

Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 16: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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 16:27
bevor du eine glatze hast, formatiere erstmal den code. so ist er schwer zu lesen

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
heiopanst

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

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 18:07
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:
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;
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.
  Mit Zitat antworten Zitat
heiopanst

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

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 18:09
begin

zu dem begin!!!!!
  Mit Zitat antworten Zitat
heiopanst

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

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 28. Feb 2004, 18:10
zu dem in HTML-Tags!!!

(bin neu hier)
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 1. Mär 2004, 15:36
kurz überflogen und folgendes ist mir aufgefallen:

Zitat:
Form2.Query6.SQL.add('select * from DB_Absicherung_Vermoegen where Kunde_ID='''+n+'''');
ist deine Kunde_ID tatsaechlich ein string in meine wegen den quotedstr; wenn es kein
string ist dann brauchste die ''' nicht
  Mit Zitat antworten Zitat
heiopanst

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

Re: Probleme mit SQL-Queries und Anzeige in Treeview

  Alt 1. Mär 2004, 17:37
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz