PDA

Vollständige Version anzeigen : Access <=> MySQL HELP


ThomasHava
20.01.2003, 14:45
Hi allerseits,
versuche gerade Access als Front- und MySQL als Back-end zu verwenden!

Habe eine DB über PHPMyAdmin auf dem MySQL Server erstellt.
Wenn ich jetzt die DB über den ODBC - Treiber mit Access verknüpfe und eine beliebige Tabelle aufrufe ( nur die tabelle keine Abfrage ) und Werte in diese schreibe dann steht gelöscht in dem Datensatz wo ich gerade den Wert reingeschrieben habe. In der MS Knowledge base steht dass man das durch eine Pass-Through Abfrage beheben kann!

Gut so! Hab eine SQL Pass Through Abfrage erstellt und meine Datenquelle angegeben. Wenn ich jetzt die Abfrage starte kann ich keinen Wert in der Tabelle verändern bzw. löschen! ..... wie kann ich das ändern ???

Sascha Trowitzsch
20.01.2003, 15:23
Mit PassThrough-Abfragen kann man nur Ergebnisse erhalten, nicht schreiben, solange dies nicht Insert- oder Update- oder Delete-Abfragen sind.

Erzeuge in jeder Tabelle ein zusätzliches TimeStamp-Feld in der MySQL-DB, dann sollte die Meldung nicht mehr kommen.

Ciao, Sascha

ThomasHava
20.01.2003, 15:39
Also wenn ich in meiner MySQL DB ein feld erzeuge welches timestamp heißt und dann die tabelle abfrage , dann taucht die #gelöscht Meldung nicht mehr auf wenn ich neue datensätze eintrage??

Sascha Trowitzsch
20.01.2003, 15:43
Das Feld selber kannst du von mir aus XYZ nennen. Der Feldtyp muss Timestamp sein! (Gibt's in Access nicht, wohl aber in allen SQL-Servern)

ThomasHava
20.01.2003, 15:52
Danke erstmal für deine Hilfe Sascha :)

ThomasHava
20.01.2003, 15:54
Habe jetzt in der MySQL Tabelle ein Feld mit namen timestamp und typ timestamp ( 12 Zeichen lang ) erstellt. Wenn ich jetzt eine normale Abfrage mit der verlinkten Tabelle erstelle und Werte eingebe , bekomme ich immer noch die #gelöscht Meldung.

Sascha Trowitzsch
20.01.2003, 16:04
Eigentlich ist ein TimeStamp in MySQL 14 Z. lang.

Aber ich versteh jetzt nichts mehr:

Wieso gibst du plötzlich werte in eine Abfrage ein?
Es ging doch um das Problem mit der Tabelleneingabe. Wenn da trotz Timestamp noch immer #gelöscht kommt, dann weiß ich auch nicht...

Ciao, Sascha

ThomasHava
20.01.2003, 19:43
Hab vorhin nur time verwendet , war mein Fehler sorry. Aber dann hab ich auf timestamp umgestellt hat sich auch noch nix getan. Erst nachdem ich eine neue DB erstellt hat lief das eigentlich Fehlerfrei mit normalen Abfragen etc.
Vielen Dank für deine schnelle und effiziente Hilfe Sascha !!
P.S: Wie läufts mit der SAPDB ? :)

bernd001
18.05.2003, 00:01
Hi,

habe ein ähnliches Problem:
Verknüpfung von 2 Tabellen funktioniert, wenn eine davon die "Haupttabelle" ist.

Meine Tabellenstruktur: (verknüpfte ODBC - MySQL Tabellen)
Haupttabelle: (hier werden die Produkte registriert)
produktnummer --> unique
timestamp

Wertetabelle1:
produktnummer --> key
wert1_id --> key
wert

Wertetabelle2:
produktnummer --> key
wert2_id --> key
wert

Bei einer Abfrage über 2 Tabellen mit der Haupttabelle funktioniert es.

Wenn ich nun eine Abfrage über alle 3 Tabellen mache, kann ich in dem Ergebnis keine Änderungen vornehmen.

Kann mit vielleicht jemand helfen?

Nouba
18.05.2003, 11:20
das wird Dir mit einer Access-Datenbank auch nicht gelingen. Du solltest die Datenstruktur nochmals überdenken. Erstelle eine neue Tabelle für vorkommende Wertetypen und verknüpfe diese mit nur einer einzigen Wertetabelle.

bernd001
19.05.2003, 16:57
Danke für die Anwort!

Ich habe aber ohnehin eine Tabelle, in der genau festgelegt ist, welche Werte_id`s es gibt.

Werteartentabelle:
id Wertename Sprache
1 Grösse de
1 Size en
2 Gewicht de
2 Weight en
.
.
.


id und Sprache natürlich als Keys.

Jetzt versteh ich nicht, warum ich bei einer abfrage über die 3 Tabellen keine Änderungen im Ergebnis machen kann. (Die 2 unterschiedlichen Wertetabellen sind leider notwendig)

LG Bernd

Nouba
19.05.2003, 17:08
Dir fehlt eine Sprachtabelle, deren Primärschlüssel in die Wertetabelle gehört. Dann hast Du eine Wertetabelle und erhälst einen updatebaren Query.

bernd001
20.05.2003, 00:06
Hi,

sorry, aber ich glaube, bei mir scheitert es an den Grundkenntnissen.

Ich habe das ganze jetzt nochmals mit einer access-tabellen versucht und ein bild mit den tabellenbeziehungen mitupgeloadet.

Die eindeutigen Bezeichnungen sind immer primary keys.

Die Abfrage funktioniert ja, aber warum kann ich da nicht updaten?