AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Ausführen / Listbox aktualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Ausführen / Listbox aktualisieren

Ein Thema von detom · begonnen am 17. Mär 2008 · letzter Beitrag vom 17. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
detom

Registriert seit: 13. Mär 2008
16 Beiträge
 
#1

SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 09:33
Datenbank: Access • Version: 2k • Zugriff über: ADO
Hallo NG,

ich habe folgendes Schema:

AccessDB -> ADOConn => [ADOQuerys]

=> ADOQuery1 -> DataSource1 -> DBLookupListBox1
=> ADOQuery2 -> DataSource2 -> DBLookupListBox2

ADOQuery1 greift auf Tab1 zu und der Inhalt eines Feldes in Tab1 soll als Where Klausel für ADOQuery2 dienen.

Also zeige ich den Inhalt der Tab1 in der DBLookupListbox1 an.
Nach Auswahl des Inhalts in der Box1 soll der Inhalt in Box2 aktualisiert werden (entsprechend der neuen Where Klausel aus Box1).

str_sql:='SELECT PEmployee.personalId, PEmployee.name, PEmployee.forename, PEmployee.rotation, PEmployee.workcenter ';
str_sql:=str_sql + 'FROM PEmployee ';
str_sql:=str_sql + 'WHERE ';
str_sql:=str_sql + dblookuplistbox1.KeyValue + ';';

ADOQry2.SQL.Clear;
ADOQry2.SQL.Add(str_sql);

und was kommt dann ????

Wie aktualisiere ich den Inhalt in der Box2
Ich habe jetzt schon alles Mögliche probiert, aber irgendwie habe ich ein großes Anfängerbrett vor dem Kopf
Danke für alle Hinweise

Tom
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 09:35
ADOQry2.Open; das fehlt noch dann sollte es klappen

gruß
reli
  Mit Zitat antworten Zitat
Peinhard

Registriert seit: 8. Jul 2006
152 Beiträge
 
#3

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 09:53
Ausserdem dürfte der WHERE-Clause ungültig sein, da er keinen Vergleich, sondern nur einen Wert enthält. Es fehlt vor dem Wert ein 'Feldname = '. Ausserdem - muss Access-SQL mit einem ';' terminiert werden...?
Confuzius say: Early worm have death wish.
  Mit Zitat antworten Zitat
detom

Registriert seit: 13. Mär 2008
16 Beiträge
 
#4

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:08
ADOQyr2.Open funktioniert bei mir nicht. Ich bekomme zwar keine Fehlermeldung aber Box2 bleibt leer.
Ich habe jetzt was anderes gemacht und jetzt scheint es zu funktionieren:

ADOQry2.active:=false;
DataSet2.Enabled:=false;
DataSet2.Enabled:=true;
ADOQry2.active:=true;

Ich hoffe das geht so auf Dauer und ich bekomme nicht irgendwann eine Fehlermeldung.

Danke trotzdem.

Eine Frage noch zur IDE bzw dem Code Editor. Ich komme von der MS Schiene (VB Net) und habe nur Delphi nutzen wollen weil ich in dem Fall keine weiteren Dateien oder sonstige Installationsnotwendigkeiten (NET Framework, DLL's usw.) haben wollte.

Aber die Funktionalität des Editors in Delphi ist für mich schon sehr gewöhnungsbedürftig.
Die Codevervollständigung funktioniert seltsam zb:

----------------------
box1.enabled:=True -> hier bekomme ich VB gleich TRUE oder FALSE zur Auswahl - oder

box1. -> manchmal funktioniert das Anzeigen der Auswahlmöglichkeiten und manchmal nicht. - meistens nicht bei copy/paste code

der Cursor springt bei Zeilenwechsel nicht zum Ende des Codes sondern steht "irgendwo" (Tabulator funktioniert "komisch" )
----------------------

Kann man die Funktionalität irgendwo einstellen oder gibt es Editorfunktionalitätserweiterungen?
Aber na gut, muß man sich vielleicht nur daran gewöhnen

Tom
  Mit Zitat antworten Zitat
detom

Registriert seit: 13. Mär 2008
16 Beiträge
 
#5

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:14
Hallo,

Zitat von Peinhard:
Ausserdem dürfte der WHERE-Clause ungültig sein, da er keinen Vergleich, sondern nur einen Wert enthält. Es fehlt vor dem Wert ein 'Feldname = '. Ausserdem - muss Access-SQL mit einem ';' terminiert werden...?
das ";" ist denke ich notwendig - es funktioniert jedenfalls sehr gut.
Die Where Klausel beinhaltet alle notwendigen Angaben. Sie sind in einer Tabelle als String hinterlegt.
zb.:

Titel='General' and Marker='XX'

So habe ich die Möglichkeit nachträglich Abfragen hinzuzufügen oder zu ändern - ohne etwas am Code zu ändern.
Das ist für Reporte sehr nützlich.

Gruß Tom
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:15
Zitat von detom:

----------------------
box1.enabled:=True -> hier bekomme ich VB gleich TRUE oder FALSE zur Auswahl - oder

box1. -> manchmal funktioniert das Anzeigen der Auswahlmöglichkeiten und manchmal nicht. - meistens nicht bei copy/paste code

der Cursor springt bei Zeilenwechsel nicht zum Ende des Codes sondern steht "irgendwo" (Tabulator funktioniert "komisch" )
----------------------
1. naja es gibt ja noch mehr wie true/false... wie wärs mit box1.enabled := (box2.itemindex > 2); oder so? kann er ja nicht wissen was du da machen willst

2. bei c&p liegt meistens irgendwo ein fehler vor - wenn vor dem eintrag irgendwo was ned klappt dann will er dass du zuerst den fehler beseitigst bevor er dir da was vernünftiges anzeigt -> warum kA

3. du meinst mit enter oder mit pfeiltasten? bei enter rückt er (in den neueren delphi versionen - hab ja kA welche du benutzt) um 2 leerzeichen ein. delphianer nutzen leerzeichen anstelle der tabs aus der MS welt. der tabulator sollte auch defaultmäßig 2 leerzeichen anstatt eines tabs machen
es gibt unter tools->optionen->editor-optionen eine editor einstellung. damit kannste tasten usw auf die VS welt umstellen. (gerade bei delphi 2006 geschaut weil gerade offen)

gruß
reli

edit: ";" muss nicht aber kann...
  Mit Zitat antworten Zitat
Peinhard

Registriert seit: 8. Jul 2006
152 Beiträge
 
#7

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:19
Statt DataSet2 soll es DataSource2 heissen, nehme ich an? Der ganze Zinnober sollte aber nicht nötig sein, ein AdoQry2.Close vor dem Ändern des SQL-Statements und ein AdoQry2.Open danach sollten reichen, sonst 'is da was komisch'. Open bzw Close sind übrigens identisch mit Active:=True bzw False.
Confuzius say: Early worm have death wish.
  Mit Zitat antworten Zitat
detom

Registriert seit: 13. Mär 2008
16 Beiträge
 
#8

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:26
Hallo,
Zitat von Peinhard:
Statt DataSet2 soll es DataSource2 heissen, nehme ich an? Der ganze Zinnober sollte aber nicht nötig sein, ein AdoQry2.Close vor dem Ändern des SQL-Statements und ein AdoQry2.Open danach sollten reichen, sonst 'is da was komisch'. Open bzw Close sind übrigens identisch mit Active:=True bzw False.
Du hast recht DataSource2 war gemeint.

Aber ohne diesem "Zinnober" funktioniert es nicht. Habe es gerade noch mal ausprobiert. Die Box2 bleibt leer.

wt2_ADOQryFilterGroup.Close;
wt2_ADOQryFilterGroup.SQL.Clear;
wt2_ADOQryFilterGroup.SQL.Add(str_sql);
wt2_ADOQryFilterGroup.Open;


Tom
  Mit Zitat antworten Zitat
detom

Registriert seit: 13. Mär 2008
16 Beiträge
 
#9

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:30
1. naja es gibt ja noch mehr wie true/false... wie wärs mit box1.enabled := (box2.itemindex > 2); oder so? kann er ja nicht wissen was du da machen willst

Das ist wirklich anders bei Delphi - Boolsche Funktionen ermöglichen in VB nun mal nur 0/1
Bei Delphi ist enabled also nicht nur 0/1 habe ich jetzt gelernt

2. bei c&p liegt meistens irgendwo ein fehler vor - wenn vor dem eintrag irgendwo was ned klappt dann will er dass du zuerst den fehler beseitigst bevor er dir da was vernünftiges anzeigt -> warum kA

Kann sein das bei c/p irgendwelche Leerzeichen oder Tabs mit kopiert werden.

3. du meinst mit enter oder mit pfeiltasten? bei enter rückt er (in den neueren delphi versionen - hab ja kA welche du benutzt) um 2 leerzeichen ein. delphianer nutzen leerzeichen anstelle der tabs aus der MS welt. der tabulator sollte auch defaultmäßig 2 leerzeichen anstatt eines tabs machen
es gibt unter tools->optionen->editor-optionen eine editor einstellung. damit kannste tasten usw auf die VS welt umstellen. (gerade bei delphi 2006 geschaut weil gerade offen)

Ich benutze noch D6 - Asbach Version


gruß tom

Sorry - habe falsch zitiert.
  Mit Zitat antworten Zitat
Peinhard

Registriert seit: 8. Jul 2006
152 Beiträge
 
#10

Re: SQL Ausführen / Listbox aktualisieren

  Alt 17. Mär 2008, 10:35
Warum verwendest du übrigens eine DBLookupListbox und keine einfache DBListBox? Zur Codevervollständigung noch: der Punkt muss 'frisch' sein, sonst springt das Ding nicht an. Also zB nach c&p den Punkt noch mal wegmachen und neu eingeben.
Confuzius say: Early worm have death wish.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:04 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