Autor Beitrag
Tabakbrummel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: 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?


ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 16.03.06 13:12 
Bei einem select-Query mußt du statt .ExecSql .Open aufrufen.

_________________
Markus Kinzler.
Tabakbrummel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
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
BeitragVerfasst: Do 16.03.06 19:54 
Moin, Moin,



user profile iconTabakbrummel 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124

win 7
Turbo Delphi, VS 20010 Express
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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:
ausblenden 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



BeitragVerfasst: 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....


ausblenden SQL-Anweisung
1:
2:
3:
select a.name, b.vorname, a.alter, b.wohnort 
  from adresse a, adresse1 b 
 where a.id = b.id;