AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Query aus DBEdit-Fledern bauen...
Thema durchsuchen
Ansicht
Themen-Optionen

Query aus DBEdit-Fledern bauen...

Ein Thema von eXpli · begonnen am 3. Jan 2008 · letzter Beitrag vom 21. Jan 2008
Antwort Antwort
Seite 3 von 4     123 4      
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#21

Re: Query aus DBEdit-Fledern bauen...

  Alt 7. Jan 2008, 18:24
Ich nochmal ,

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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: Query aus DBEdit-Fledern bauen...

  Alt 7. Jan 2008, 18:27
Du scheinst eine Verknüpfung von DS1 nach DS2 und von DS2 nach DS1 gesetzt zu haben.
Markus Kinzler
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#23

Re: Query aus DBEdit-Fledern bauen...

  Alt 7. Jan 2008, 19:43
Hmm ich weiss garnicht wie man eine verknüpfung zwischen die beiden DS macht :>. Oder ist das auf die Datenbank bezogen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: Query aus DBEdit-Fledern bauen...

  Alt 7. Jan 2008, 19:44
Über DataSourcen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#25

Re: Query aus DBEdit-Fledern bauen...

  Alt 7. Jan 2008, 19:59
Zitat:
Leider kommt immerwieder die Fehlermeldung "Zirkuläre Datenverbindung sind nicht erlaubt."
... ist folgendes:

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
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#26

Re: Query aus DBEdit-Fledern bauen...

  Alt 13. Jan 2008, 15:59
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...
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#27

Re: Query aus DBEdit-Fledern bauen...

  Alt 13. Jan 2008, 18:16
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#28

Re: Query aus DBEdit-Fledern bauen...

  Alt 13. Jan 2008, 18:28
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
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#29

Re: Query aus DBEdit-Fledern bauen...

  Alt 16. Jan 2008, 21:18
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!!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#30

Re: Query aus DBEdit-Fledern bauen...

  Alt 17. Jan 2008, 21:53
Hallo,

Zitat von eXpli:
... Verknüpft sind die Tabellen 1:n von TabKategorie.ID_Kategorie zu Kategorie! ...
nur um es klar herauszustellen: Du hast eine 1:n Beziehung von Kategorien zu Vokabeln, weshalb du den primary key der Kategorie mit der Vokabel führst.

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 00:48 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