Autor |
Beitrag |
Tabakbrummel
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: Do 16.03.06 13:04
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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 16.03.06 13:12
Bei einem select-Query mußt du statt .ExecSql .Open aufrufen.
_________________ Markus Kinzler.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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.
_________________ Markus Kinzler.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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.
_________________ Markus Kinzler.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: 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
      
Beiträge: 166
Erhaltene Danke: 6
MS-DOS,Win32, Win95, Win 98, Me,XP, Linux, NT4.0, NT 2000-2008, Vista, Windows 7
Turbo Pascal,D1 Enter,D2 Enter,D3 Enter,D5 Enter, Kylix, D2007, PL/SQL, MS/SQL, Delphi 2010, Delphi XE
|
Verfasst: 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
_________________ Wissen ist Macht, nichts wissen macht auch nichts...
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: 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
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: 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
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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; |
_________________ Markus Kinzler.
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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; |
|
|