(gelöst) kann Tabelle erstellen, aber nicht editieren
Moderator: Moderatoren
(gelöst) kann Tabelle erstellen, aber nicht editieren
Hallo alle zusammen,
ich weiss, ein Titel wie meiner liest sich oft hier im Forum. Leider habe ich aber noch keine sinnige Lösung gefunden, was vielleicht auch an dem kleinen "Twist" bei meinem Problem hier liegt.
Mein Fall ist wie folgt:
Bei mir laufen OO2 und MySQL auf einem Win2000-Rechner.
Die Verbindung zwischen Base und MySQL stelle ich über ODBC her, was auch wunderbar zu funktionieren scheint (Verbindung erfolgt).
Problem meinerseits ist jedoch, dass ich zwar die einzelnen Tabellen (incl. der Daten) einer bereits vorhandenen DB zwar schön ansehen kann, aber nicht ändern.
Versuche ich in Base ein Formular oder einen Bericht mit einem Assistenten zu erstellen, kommt der im Forum oft genannte Fehler "Die Felder von <DB>.<Tabellenname> konnten nicht ermittelt werden".
Versuche ich eine Ansicht zu erstellen, erscheinen die Tabellenklötze zwar mit dem Tabellennamen, aber ohne die einzelnen Felder (nur ein einzelner einsamer *).
Und jetzt kommt der "Twist", das Schizophrene am Ganzen:
ich kann in die vorhandene DB trotzdem neue Tabellen einfügen. Nachdem ich brav die einzelnen Felder eingestellt und die Tabelle abgespeichert habe, verhält sie sich auf einmal genau so wie die bereits vorhandenen Tabellen: also kein Schreibzugriff, keine Felderermittlung usw.
Ein Teil meiner Tabellen hat explizit einen primary key, ein Teil nicht. Unterschied macht es auf Base keinen.
phpMyAdmin, HeidiSQL oder MySQL Administrator haben mit den Tabellen (auch mit den von Base erstellten) überhaupt keine Probleme.
Alles natürlich davon ausgehend, dass die DB nicht durch andere Programmzugriffe ausgesperrt wird.
Ebenfalls anzumerken wäre, dass genau der selbe Zugriff mit OO1.1.5 prima funktioniert (weswegen ich zZ. downgegradet habe :p ). Brauche ich nämlich um Excel-Tabellen in die DB zu bringen (ohne all zu viel copy&paste).
Wie man nur unschwer erraten kann, bin ich momentan mehr als verwirrt und sprachlos.
Hat vielleicht Jemand eine Idee ?
ich weiss, ein Titel wie meiner liest sich oft hier im Forum. Leider habe ich aber noch keine sinnige Lösung gefunden, was vielleicht auch an dem kleinen "Twist" bei meinem Problem hier liegt.
Mein Fall ist wie folgt:
Bei mir laufen OO2 und MySQL auf einem Win2000-Rechner.
Die Verbindung zwischen Base und MySQL stelle ich über ODBC her, was auch wunderbar zu funktionieren scheint (Verbindung erfolgt).
Problem meinerseits ist jedoch, dass ich zwar die einzelnen Tabellen (incl. der Daten) einer bereits vorhandenen DB zwar schön ansehen kann, aber nicht ändern.
Versuche ich in Base ein Formular oder einen Bericht mit einem Assistenten zu erstellen, kommt der im Forum oft genannte Fehler "Die Felder von <DB>.<Tabellenname> konnten nicht ermittelt werden".
Versuche ich eine Ansicht zu erstellen, erscheinen die Tabellenklötze zwar mit dem Tabellennamen, aber ohne die einzelnen Felder (nur ein einzelner einsamer *).
Und jetzt kommt der "Twist", das Schizophrene am Ganzen:
ich kann in die vorhandene DB trotzdem neue Tabellen einfügen. Nachdem ich brav die einzelnen Felder eingestellt und die Tabelle abgespeichert habe, verhält sie sich auf einmal genau so wie die bereits vorhandenen Tabellen: also kein Schreibzugriff, keine Felderermittlung usw.
Ein Teil meiner Tabellen hat explizit einen primary key, ein Teil nicht. Unterschied macht es auf Base keinen.
phpMyAdmin, HeidiSQL oder MySQL Administrator haben mit den Tabellen (auch mit den von Base erstellten) überhaupt keine Probleme.
Alles natürlich davon ausgehend, dass die DB nicht durch andere Programmzugriffe ausgesperrt wird.
Ebenfalls anzumerken wäre, dass genau der selbe Zugriff mit OO1.1.5 prima funktioniert (weswegen ich zZ. downgegradet habe :p ). Brauche ich nämlich um Excel-Tabellen in die DB zu bringen (ohne all zu viel copy&paste).
Wie man nur unschwer erraten kann, bin ich momentan mehr als verwirrt und sprachlos.
Hat vielleicht Jemand eine Idee ?
Zuletzt geändert von Cherufe am Do, 23.11.2006 03:31, insgesamt 1-mal geändert.
Re: Base/MySQL - kann Tabelle erstellen, aber nicht editiere
Von ODBC habe ich bei mir auf JDBC umgestellt weil ein Timeout irgendwann keine neue Verbindung zu MySQL ermöglichte.Cherufe hat geschrieben:Die Verbindung zwischen Base und MySQL stelle ich über ODBC her, was auch wunderbar zu funktionieren scheint (Verbindung erfolgt).
Aber das nur am Rande, da es bei dir so weit ja mit ODBC zu funktionieren scheint.
Für MySQL musst du IMMER einen primary key haben. Darüber bin ich Anfangs auch immer gestolpertCherufe hat geschrieben:Ein Teil meiner Tabellen hat explizit einen primary key, ein Teil nicht. Unterschied macht es auf Base keinen.

Die Quelle dazu, wo das nach zu lesen ist, habe ich leider nicht mehr griffbereit.
OOo 2.0.4
Sven
Danke, danke !
Das mit den primary keys könnte wirklich das Problem sein. Ein bisschen eingrenzen konnte ich das Problem heut Nacht schon. Dabei kam heraus, dass ich meine Aussage von wegen OO1.1.5 packt es, leicht revidieren muss (war etwas voreilig .. OO1.1.5 HAT es mal gepackt).
Naja, Fakt ist, wenn ich meine DB per ODBC ansteuere, habe ich so ziemlich überall das selbe Problem (siehe mein post).
Durch reines verklicken habe ich mal zufällig eine MySQL-VerwaltungsDB angewählt (also, eine von denen, die sich mit MySQL installieren).
Und siehe da ... ich kann Felder editieren .. ganz prima !
Insofern hast du wohl Recht, Koala. Mich wundert es nur, dass ich zuletzt vor knapp einem halben Jahr eine ähnliche Aktion wie jetzt durchgeführt habe (also Dateien von .xls-Dateien via Datendankfenster im OO in die DB eingefügt). Allerdings habe ich damals noch eben das Alte OO1.1.5 verwendet.
Seltsam ist nur, dass sich an der DB selbst seitdem nichts verändert hat (außer neuer MySQL Version auf der die Daten laufen).
Nun denn ... auf jeden Fall noch einmal Danke fü die Hilfe. Alleine wäre ich auf die primary keys wohl nie gekommen :p
Ich für meinen Teil hole mir erst mal einen Kaffee, hole tief Luft und fange dann an die DB mit keys zu versehen. Melde mich wenn ich fertig bin und berichte ob es dann geht oder nicht.
Das mit den primary keys könnte wirklich das Problem sein. Ein bisschen eingrenzen konnte ich das Problem heut Nacht schon. Dabei kam heraus, dass ich meine Aussage von wegen OO1.1.5 packt es, leicht revidieren muss (war etwas voreilig .. OO1.1.5 HAT es mal gepackt).
Naja, Fakt ist, wenn ich meine DB per ODBC ansteuere, habe ich so ziemlich überall das selbe Problem (siehe mein post).
Durch reines verklicken habe ich mal zufällig eine MySQL-VerwaltungsDB angewählt (also, eine von denen, die sich mit MySQL installieren).
Und siehe da ... ich kann Felder editieren .. ganz prima !
Insofern hast du wohl Recht, Koala. Mich wundert es nur, dass ich zuletzt vor knapp einem halben Jahr eine ähnliche Aktion wie jetzt durchgeführt habe (also Dateien von .xls-Dateien via Datendankfenster im OO in die DB eingefügt). Allerdings habe ich damals noch eben das Alte OO1.1.5 verwendet.
Seltsam ist nur, dass sich an der DB selbst seitdem nichts verändert hat (außer neuer MySQL Version auf der die Daten laufen).
Nun denn ... auf jeden Fall noch einmal Danke fü die Hilfe. Alleine wäre ich auf die primary keys wohl nie gekommen :p
Ich für meinen Teil hole mir erst mal einen Kaffee, hole tief Luft und fange dann an die DB mit keys zu versehen. Melde mich wenn ich fertig bin und berichte ob es dann geht oder nicht.
Hallo Cherufe
Wenn es bei einigen Tabellen geht und bei anderen nicht dann fehlt vielleicht das
Statement für die betreffende Tabelle.
Das Statement unter Extras=>SQL direkt eingeben.
Gruss Bernd
Wenn es bei einigen Tabellen geht und bei anderen nicht dann fehlt vielleicht das
Code: Alles auswählen
grant all privileges on Tabellenname to root (bzw. Username)
Das Statement unter Extras=>SQL direkt eingeben.
Gruss Bernd
Tag noch einmal,
also, elegant war's nicht, aber es geht jetzt.
Nachdem ich meiner DB nachträglich primary keys zugeteilt habe, konnte OO immer noch nichts damit anfangen. Auch an den Kollationen lag es nicht ( hatte davor latin1_swedish_ci und habe dann auf utf8_unicode_ci ungestellt ... war eh mal fällig).
Nun habe ich aber die gesamte DB kopiert und unter einem anderen Namen neu angelegt..
Um eine lange Geschichte kurz zu machen. Das Problem lag bei mir anscheinend unter Anderem am Datenbanknamen (!).
Meine eigentliche DB hieß (z.B.) DBfoobar-1 (weil es der erste Server war). Anscheinend hat OO genau damit Probleme.
Nachdem ich eine neue DB mit dem Namen DBfoobar erstellt habe und den Inhalt von DBfoobar-1 eins zu eins dort eingefügt habe, konnte Base und der Rest von OO auf einmal mit den Daten etwas anfangen.
Testhalber habe ich eine zweite TestDB erstellt und an deren Namen ebenfalls ein -1 drangehängt. Und siehe da: OO steht wieder hilflos da.
Ebenfalls aus Neugierde habe ich die "funktionierende" Datenbank Tabellenfrei gemacht und die Tabellenversionen VOR dem Setzen der primary keys eingespielt.
Resultat: OO blockt jede Eingabe.
Um die Lösung mal kurz zu fassen:
1. OO mag keine Sonderzeichen in DB-Namen ( in meinem Fall war es ein - )
2. MySQL will unbedingt primary keys in den Tabellen sehen. Egal wie unwichtig sie für die Bearbeitung sind
Noch einmal Danke für den Hinweis Koala.
Jetzt kann ich endlich auch richtig zu arbeiten anfangen ! Wheee!
also, elegant war's nicht, aber es geht jetzt.
Nachdem ich meiner DB nachträglich primary keys zugeteilt habe, konnte OO immer noch nichts damit anfangen. Auch an den Kollationen lag es nicht ( hatte davor latin1_swedish_ci und habe dann auf utf8_unicode_ci ungestellt ... war eh mal fällig).
Nun habe ich aber die gesamte DB kopiert und unter einem anderen Namen neu angelegt..
Um eine lange Geschichte kurz zu machen. Das Problem lag bei mir anscheinend unter Anderem am Datenbanknamen (!).
Meine eigentliche DB hieß (z.B.) DBfoobar-1 (weil es der erste Server war). Anscheinend hat OO genau damit Probleme.
Nachdem ich eine neue DB mit dem Namen DBfoobar erstellt habe und den Inhalt von DBfoobar-1 eins zu eins dort eingefügt habe, konnte Base und der Rest von OO auf einmal mit den Daten etwas anfangen.
Testhalber habe ich eine zweite TestDB erstellt und an deren Namen ebenfalls ein -1 drangehängt. Und siehe da: OO steht wieder hilflos da.
Ebenfalls aus Neugierde habe ich die "funktionierende" Datenbank Tabellenfrei gemacht und die Tabellenversionen VOR dem Setzen der primary keys eingespielt.
Resultat: OO blockt jede Eingabe.
Um die Lösung mal kurz zu fassen:
1. OO mag keine Sonderzeichen in DB-Namen ( in meinem Fall war es ein - )
2. MySQL will unbedingt primary keys in den Tabellen sehen. Egal wie unwichtig sie für die Bearbeitung sind
Noch einmal Danke für den Hinweis Koala.
Jetzt kann ich endlich auch richtig zu arbeiten anfangen ! Wheee!
Mir ist so, als wenn ich das in dem Artikel/Doku (den ich noch nicht wiedergefunden habe) auch gelesen hatte. Für MySQL selbst sind nur diese Zeichen im Namen nicht erlaubt: "Database names cannot contain ‘/’, ‘\’, ‘.’, or characters that are not allowed in a directory name."Cherufe hat geschrieben:Um die Lösung mal kurz zu fassen:
1. OO mag keine Sonderzeichen in DB-Namen ( in meinem Fall war es ein - )
Nicht MySQL benötigt primary keys, sondern OOo!Cherufe hat geschrieben:2. MySQL will unbedingt primary keys in den Tabellen sehen. Egal wie unwichtig sie für die Bearbeitung sind[/b]
Wenn ich mich recht entsinne ist das bei allen anderen unterstützten DBMS egal, nur bei MySQL eben nicht.
Sven
In jeder Tabelle extra ein Feld ID anzulegen, um es dann als Primärschlüssel benutzen zu können ist schlecht.
Es sollten nur dort zusätzlich ID Felder angelegt werden, wo kein anderes Feld eine Nicht-Redundante Spalte hat, die als Primärschlüssel benutzt werden kann.
Nicht zu vergessen, das ein Primärschlüssel auch aus 2 oder mehr Spalten bestehen kann.
Das nur noch so zur Info.
Es sollten nur dort zusätzlich ID Felder angelegt werden, wo kein anderes Feld eine Nicht-Redundante Spalte hat, die als Primärschlüssel benutzt werden kann.
Nicht zu vergessen, das ein Primärschlüssel auch aus 2 oder mehr Spalten bestehen kann.
Das nur noch so zur Info.
Signatur? Signatur? Welche Signatur?
Hallo Blackhell
habe gerade im Wiki das hier gefunden
http://ooowiki.de/ZusammengesetzterPrim ... %C3%BCssel
Manuell funktioniert es aber nur wenn beide Schlüssel NICHT auf Auto Increment gesetzt sind.
Gruss Bernd
habe gerade im Wiki das hier gefunden
http://ooowiki.de/ZusammengesetzterPrim ... %C3%BCssel
Manuell funktioniert es aber nur wenn beide Schlüssel NICHT auf Auto Increment gesetzt sind.
Gruss Bernd