![]() |
Datenbankeinträge durch einen listbox-klick anzeigen lassen
Hallo miteinander,
ich hätte mal eine frage und zwar besitzte ich eine listbox, in der verschiedene einträge sind. nun möchte ich wenn ich auf die einzelnen einträge der listbox klicke die werte die in meiner datenbank sind in den vorhanden dbedit feldern anzeigen lassen. kann mir einer helfen wie ich durch einen klick auf die einträge der listbox diese werte in den dbedits anzeigen lassen kann? ich kommme einfach nicht darauf. danke schon mal für die hilfe. mfg |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Das müsste über eine parametrisierte Query zu machen sein. Angenommen, in Deiner Listbox stehen Namen, dann könnte das so gehen:
Delphi-Quellcode:
Das SQL musst Du natürlich nicht jedesmal neu zuweisen, sondern kannst das auch zur Designtime fest eintragen (samt Parameter).
Query.Close;
Query.SQL.Text := 'SELECT Feld1,Feld2 FROM Tabelle WHERE Name = :name'; Query.ParamByName('name').Value := ListBox.Items[ListBox.ItemIndex]; Query.Open; |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
hmm mein fehler, ich hätte noch dazu schreiben solln, dass ich mit einer paradox datenbank arbeite (ich weiss paradox sollte man nicht mehr verwenden usw...). will aber erstmal mit ner paradox anfangen, und mich weiter vorarbeiten. wie läuft des denn dann ab wenn man das mit paradox macht?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Genauso.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Und wie parametisiere ich query das es nicht mehr ein nichtdeklarierter bezeichner ist?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Wie hast du die TQuery-Instanz genannt?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
also ich habe es bis jetzt mit einer TTable gemacht und nicht mit einer TQuery. Funktioniert es genauso wie mit einer TTable?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Der Zugriff ja. Man gibt allerdings eine SQL-Abfrage statt dem Tabellennamen an.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
man benötigt aber trotzdem eine TTable oder? weisst du wo man des nachschauen(nachlesen) kann für die SQL-Abfrage?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Du brauchst keine TTable, die TQuery übernimmt die Aufgabe komplett. Du musst diese also statt der Table als Dataset angeben, dann funktioniert das auch.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Zitat:
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Du hast doch eine Datasource, oder? Da stand vorher als Dataset die TTable drin, da muss nun die TQuery rein.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
ja genau aber jetzt kann ich nichts mehr auswählen bei dataset. es gibt keine möglichkeit. das feld ist leer
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
ok jetzt hab ich es. jetzt steht query innen...
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Delphi-Quellcode:
hab des jetzt mal so gemacht. bei jedem klick auf einen eintrag der listbox kommt bei mir aber eine debugger-exception. (Das Feld Kurzbeschreibung wurde nicht gefunden.)Obwohl es vorhanden ist.
Query1.Close;
Query1.SQL.Text := 'SELECT Programmierer FROM KFZ.DB WHERE Programmierer = :Programmierer'; Query1.ParamByName('Programmierer').Value := ListBox1.Items[ListBox1.ItemIndex]; Query1.Open; |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Du fragst das Feld ja auch gar nicht ab.
Delphi-Quellcode:
Query1.Close;
Query1.SQL.Text := 'SELECT Programmierer, Kurzbezeichnung FROM KFZ.DB WHERE Programmierer = :Programmierer'; Query1.ParamByName('Programmierer').Value := ListBox1.Items[ListBox1.ItemIndex]; Query1.Open; |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
ahh :wall: . ja ok hab jetzt alle felder abgefragt und es kommt keine meldung mehr. bei der TQuery muss die Eigenschaft active auf true sein beim kompilieren oder? weil wenn ich sie auf true setzten will kommt ein fehler mit: Quer1: Keine SQL-Anweisung verfügbar.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Du kannst Active zur Designtime nur dann true setzen, wenn Du in der SQL-Eigenschaft auch valides SQL eingetragen hast. Aber durch das "Open" zur Laufzeit erzielst Du denselben Effekt.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
achso ok. aber ein problem hab ich jetzt noch und zwar, dass es auf dem klick bei einem eintrag der listbox angezeigt wird. also hier der Programmierer...
wird bis jetzt nicht angezeigt. |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Stimmen denn die ganzen Zuweisungen (Datasource, Dataset, Datafield, etc.)?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
bei der TDataSource:
Eigenschaft von Dataset: Quer1 Datasource von dataset hat keine zuweisung. kann man auch nichts auswählen. bei der TQuery: Eigenschaft Datasource hat auch keine zweisung. da kann man auch nichts auswählen. wüsste jetzt nicht was da fehlen sollte... bei databasename von TQuery und TDatasource habe ich jeweils den pfad angegeben wo ich mein Projekt und die db gespeichert habe. |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Und beim DBEdit sind Datasource und DataField zugewiesen?
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
ja ist auch alles zugewiesen. wenn ich bei einem dbedit feld auf datafield klicke steht zwar das zugewiesene drinnen aber kommt eine fehlermeldung wo steht: Quer1: keine sql-anweisung verfügbar
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Es steht ja auch nichts im SQL des Queries. Du musst Datafield nach dem Aktivieren des Queries zuweisen.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
kannst du mir bitte sagen wie des geht? :gruebel:
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Ich versuch' s mal (ich nutze die ganzen datensensitiven Eingabefelder normalerweise nicht):
Delphi-Quellcode:
Query1.Close;
Query1.SQL.Text := 'SELECT Programmierer, Kurzbezeichnung FROM KFZ.DB WHERE Programmierer = :Programmierer'; Query1.ParamByName('Programmierer').Value := ListBox1.Items[ListBox1.ItemIndex]; Query1.Open; DBEdit.DataField := 'Kurzbezeichnung'; |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Funktioniert nicht da DBEdit ein nichtdeklarierter Bezeichner ist
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
*grmpf* Ich kann doch nicht wissen, wie Du Deine Komponenten benennst, Du musst da schon den richtigen Namen eintragen.
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
jo sry kleiner scherz am rande :lol: . das klappt leider nicht. es wird im dbedit feld nichts angezeigt. hab alle einträge durchgeklickt... ich verzweifel noch :evil:
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Häng das Programm doch mal an
|
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Liste der Anhänge anzeigen (Anzahl: 1)
Morgen,
hatte es gestern nicht mehr geschafft das programm anzuhängen. hier ist es hoffe es hilft. mfg |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Dreh mal die Reihenfolge um:
Delphi-Quellcode:
Aber wie schon geschrieben, kannst du die Abfrage auch direkt in der IDE setzen
procedure TForm1.ListBox1Click(Sender: TObject);
begin Query1.Close; Query1.SQL.Text := 'SELECT Programmierer, Kurzbeschreibung, MailProgrammierer, Status, Prioritaet, Anmerkungen, Tester, MailTester, StatusTester, PrioritaetTester, AnmerkungenTester, Bugnummer, Datum, Uhrzeit, Fehlermeldung FROM KFZ.DB WHERE Programmierer = :Programmierer'; Query1.ParamByName('Programmierer').Value := ListBox1.Items[ListBox1.ItemIndex]; Query1.Open; DBProgrammierer.DataSource := dsKFZ; DBProgrammierer.DataField := 'Programmierer'; DBMailProgrammierer.DataSource := dsKFZ; DBMailProgrammierer.DataField := 'MailProgrammierer'; DBStatus.DataSource := dsKFZ; DBStatus.DataField := 'Status'; DBPrioritaet.DataSource := dsKFZ; DBPrioritaet.DataField := 'Prioritaet'; DBAnmerkungen.DataSource := dsKFZ; DBAnmerkungen.DataField := 'Anmerkungen'; DBBugnummer.DataSource := dsKFZ; DBBugnummer.DataField := 'Bugnummer'; DBDatum.DataSource := dsKFZ; DBDatum.DataField := 'Datum'; DBUhrzeit.DataSource := dsKFZ; DBUhrzeit.DataField := 'Uhrzeit'; DBTester.DataSource := dsKFZ; DBTester.DataField := 'Tester'; DBMailTester.DataSource := dsKFZ; DBMailTester.DataField := 'MailTester'; DBStatusTester.DataSource := dsKFZ; DBStatusTester.DataField := 'StatusTester'; DBPrioritaetTester.DataSource := dsKFZ; DBPrioritaetTester.DataField := 'PrioritaetTester'; DBAnmerkungenTester.DataSource := dsKFZ; DBAnmerkungenTester.DataField := 'AnmerkungenTester'; DBFehlermeldung.DataSource := dsKFZ; DBFehlermeldung.DataField := 'Fehlermeldung'; DBKurzbeschreibung.DataSource := dsKFZ; DBKurzbeschreibung.DataField := 'Kurzbeschreibung'; DBProgrammierer.DataField := 'Programmierer'; end; |
Re: Datenbankeinträge durch einen listbox-klick anzeigen las
Also es wird immer noch nichts angezeigt wenn ich auf einen eintrag in der Listbox klicke. Ich versteh es nicht müsste doch normal so passen alles :wall:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 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