![]() |
Re: Query aus DBEdit-Fledern bauen...
Ich nochmal :D,
Hab jetzt die letzten stunden damit verbracht irgendwie ne DBLookupComboBox mit daten aus meiner DB zu füllen... Habe die Datasource und das Feld in Listsource, Listfield und Keyfield mit meinen Daten eingegeben. Leider kommt immerwieder die Fehlermeldung "Zirkuläre Datenverbindung sind nicht erlaubt." Die DataSource wird von ner ADODataSet komponente mit Daten gefüttert (mit CommandText). Habt ihr ne idee wie ich das hinbekomme? Gruß eXpli |
Re: Query aus DBEdit-Fledern bauen...
Du scheinst eine Verknüpfung von DS1 nach DS2 und von DS2 nach DS1 gesetzt zu haben.
|
Re: Query aus DBEdit-Fledern bauen...
Hmm ich weiss garnicht wie man eine verknüpfung zwischen die beiden DS macht :>. Oder ist das auf die Datenbank bezogen?
|
Re: Query aus DBEdit-Fledern bauen...
Über DataSourcen
|
Re: Query aus DBEdit-Fledern bauen...
Zitat:
Du kannst nicht für die DataSource und ListSource das gleiche Dataset verwenden... nicht erlaubt. 2 Möglichkeiten: 1. TabelleDaten--> DSDaten-->DataSource der ComboBox TabelleListe--> DSListe-->ListSource der ComboBox ---> Listenanzeige 2. wenn du die Daten der Tabelle in der Lise haben möchtest. TabelleDaten--> DSDaten-->DataSource der ComboBox QueryListe-->DSListe-->ListSource der ComboBox ---> Listenanzeige - QueryListe Öffen - in AfterPost der TabelleDaten QueryListe neu öffnen sprich aktualisieren ...der Knackpunkt ist der daß du keine Datenverbindung im Kreis haben darfst. ...mit der ReadOnly Query ist der Kreis unterbrochen. ...ums einfach auszudrücken :-D |
Re: Query aus DBEdit-Fledern bauen...
Hmm irgendwie versteh ich das nicht so ganz. Versteh nicht wie ich die kompos untereinander verbinden soll das es funtioniert :(.
Habe jetzt folgende kompos erstellt: DBLookupComboBox - DataField: Kategorie - DataSource: DataSource1 - KeyField: Kategorie - ListField: Kategorie - ListSource: DataSource1 DataSource - DataSet: ADODataSet ADODataSet - CommandText: SELECT Kategorie FROM TabVokabeln - DataSource: DataSource1 Tabelle in der Datenbank sieht so aus: TabellenName: TabVokabeln Felder/Spalten: ID_Vokabeln, Vok_Deutsch, Vok_Englisch, Kategorie, Datum Ich möchte einfach die Einträge der Spalte Kategorie in der Combobox haben... :( |
Re: Query aus DBEdit-Fledern bauen...
So... Habs jetzt doch noch hinbekommen :) SAUBER!!
Da ich ne Beziehung in meiner DB habe, kommt jetzt ne Fehlermeldung: "Unterschiedliche Typen für Feld 'Kategorie'; erwartet: WideString, gefunden: Integer." Zur Erläuterung noch: Ich habe 2 Tabellen, TabVokabeln und TabKategorie In TabVokabeln ist 'Kategorie' (Zahl) und in TabKategorie befindet sich 'ID_Kategorie' (Autowert) Im Quelltext unter type steht folgendes:
Delphi-Quellcode:
ADODataSet1: TADODataSet;
... ADODataSet1Kategorie: TWideStringField; ... In was muss ich das denn ändern damit das wieder geht? PS.: Die Änderung der Tabellenspaltentypen hab ich in der DB grad erst gemacht. Dann kam der fehler. Gruß eXpli |
Re: Query aus DBEdit-Fledern bauen...
Hallo,
da du den Feldtyp in der Datenbank geändert hast, nachdem du das entsprechende Feld im Feldeditor der Komponente erzeugt hast musst du das Feld nochmal neu erzeugen: Doppelklick auf ADODataSet1 und das Feld löschen und neu aufnehmen - müsste genügen. Grüße vom marabu |
Re: Query aus DBEdit-Fledern bauen...
Klappt wunderbar! Dank dir marabu!
------------------- Jetzt habe ich ein ziehmlich kniffliges Problem! TabellenName: TabVokabeln Felder/Spalten: ID_Vokabeln, Vok_Deutsch, Vok_Englisch, Kategorie, Datum TabellenName: TabKategorie Felder/Spalten: ID_Kategorie, Kat_Deutsch, Kat_Englisch Verknüpft sind die Tabellen 1:n von TabKategorie.ID_Kategorie zu Kategorie! Habe jetzt nun eine DBLookupComboBox welche mir Einträge aus meiner DB anzeigt - genau genommen die Einträge von Kat_Deutsch. Da es ein Vokabeltrainingstool wird, soll der Benutzer mit der DBLookupComboBox eine Kategorie auswählen und dann sollen alle Vokabeln (im Grid) angezeigt werden die diese Kategorie haben. Wie bekomme ich denn "DBLookupComboBox1.Text" welcher ja die Kategorie inne hat in meine Abfrage? Und wie bekomme ich das hin, in einem Dataset die Abfrage über 2 Tabellen zu quetschen? So das im Grid dann zu sehen ist: Vok_Deutsch, Vok_Englisch, Kat_Deutsch, Datum Wäre echt klasse von euch wenn ihr mir weiterhelfen könntet!! |
Re: Query aus DBEdit-Fledern bauen...
Hallo,
Zitat:
Die DBLookupComboBox würde dir helfen, wenn du den Fremdschlüssel bei einer Eingabe oder Änderung über seinen Klartext auswählen möchtest. Was du aber jetzt vorhast ist ein Filtern deiner Vokabeln nach der Kategorie. Dazu arbeitest du am besten mit zwei record sets (ADODataSet, ADOQuery, ...) rsKat und rsVok, die du jeweils einer eigenen DataSource-Komponente dsKat bzw. dsVok zuordnest. Die Master-Detail-Verknüpfung zur Realisierung des Filterprozesses erreichst du dann, indem du dsKat der Eigenschaft DataSource von rsVok zuweist. Wenn du dann noch rsVok.MasterFields auf ID_Kategorie setzt, dann solltest du die Filterwirkung beobachten können. Die Bedienung erfolgt z.B. über eine DBComboBox (dsKat) und ein DBGrid (dsVok). Bei Unklarheiten findest du einige Erklärungen zu dieser Technik bei den Eigenschaften DataSource und MasterFields von TADODataset. Gute Nacht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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 by Thomas Breitkreuz