Entwickler-Ecke
Datenbanken - Tabellen verknüpfen mit SQL
Tabakbrummel - Do 16.03.06 13:04
Titel: Tabellen verknüpfen mit SQL
Hallo Delphianer
Ich habe da ein Problem beim verküpfen von zwei Tabellen mit der Query.
Es funktioniert einfach nicht, was mache ich hier falsch?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm2.Table1AfterInsert(DataSet: TDataSet); var s : string; begin s := 'SELECT adrid, adressid FROM firsttable, adress WHERE firsttable.adrid = adress.adressid '; query1.close; query1.sql.Text := s; query1.ExecSQL; end; |
MfG
Tabakbrummel
mkinzler - Do 16.03.06 13:12
Bei einem select-Query mußt du statt .ExecSql .Open aufrufen.
Tabakbrummel - Do 16.03.06 13:33
Hallo mkinzler
Erst mal vielen Dank für deine Antwort.
Funktioniert drotzdem nicht. In der DBGrid wird nur eine Tabelle angezeigt.
MfG
Tabakbrummel
mkinzler - Do 16.03.06 13:40
hast du das Grid mit dem Query verknüpft?
Hast du im ColumnEditor bereits Spalten angelegt? Wenn ja, mußt du die hinzugekommenen Spalten anlegen oder alle löschen.
Tabakbrummel - Do 16.03.06 13:50
Hallo mkinzler
Ich habe die jetzt Query mit der Grid jetzt zeigt er beide Tabellen an, aber wenn man was
über der DBEdit eingibt zeigt die grid es nicht an.
MfG
Tabakbrummel
mkinzler - Do 16.03.06 14:05
Wenn der Query aktiv ist, mußt du ihn mit Close schließen und mit Open wieder zu öffen, oder .Resync austesten.
BTW Ich würde sie Zuweisen des Abfragestrings nicht in der Ereignisroutine setzten sondern fest mit dem Query verknüpfen.
Tabakbrummel - Do 16.03.06 19:39
Hallo
Das klapp alles bei mir nicht. Und das ist erst mein zweiter Tag wo ich mich mit SQL beschäftige.
MfG
Tabakbrummel
jaevencooler - Do 16.03.06 19:54
Moin, Moin,
Tabakbrummel hat folgendes geschrieben: |
Hallo mkinzler
Ich habe die jetzt Query mit der Grid jetzt zeigt er beide Tabellen an, aber wenn man was
über der DBEdit eingibt zeigt die grid es nicht an.
MfG
Tabakbrummel |
eine Datenmenge die aus einem Join besteht ist nicht updable !
Du kannst eine Datenmenge die aus zwei verknüpften Tabellen besteht
nicht bearbeiten, Du musst schon die Datenmenge über eine zweite Query
einzeln aufrufen, ändern und speichern, danach die die Ergebnismenge erneut aufrufen
mit Close & Open, Resync, Refresh etc, et voila.
Beste Grüße
Michael
Tabakbrummel - Do 16.03.06 20:05
Hallo
Und wie könnte ich es denn machen. Könnte jemand ewentuel ein code beispiel schreiben.
MfG
Tabakbrummel
[/Edit]
MSCH - Do 16.03.06 20:50
Zitat: |
Datenmenge die aus einem Join besteht ist nicht updable ! |
grummel grummel,
hmmm, SQL-Server2005 resp. Express kann das, sofern es eindeutige ID's gibt.
grez
msch
mkinzler - Do 16.03.06 20:59
Tabakbrummel hat folgendes geschrieben: |
Und wie könnte ich es denn machen. Könnte jemand ewentuel ein code beispiel schreiben. |
Einfache weitere Querykomponente auf Form legen und einrichten. SQL-Eigenschaft derart setzen:
update firsttable set <feld1>= :feld1, <feld2>= :feld2 where adrid = :adrid; und synchron für dir adress-Tabelle.
zum Ändern füllst du nun die Parameter:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| query2.ParamByName('feld1').value := <wert1>; query2.ParamByName('feld2').value := <wert2>; query2.ParamByName('adrid').value := query1.FieldByName('adrid').Value; query2.ExecSql; query1.Refresh; |
Delete - Do 16.03.06 22:54
hallo,
du zeigst ja auch nur die eindeutigen felder ann... wenn du mehr felder anzeigen willst, musst sie auch in deiner projektion angeben... beispiel....
SQL-Anweisung
1: 2: 3:
| select a.name, b.vorname, a.alter, b.wohnort from adresse a, adresse1 b where a.id = b.id; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!