(gelöst) kann Tabelle erstellen, aber nicht editieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: (gelöst) kann Tabelle erstellen, aber nicht editieren

von berndkli » Do, 23.11.2006 11:05

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

von BlackHell » Do, 23.11.2006 10:37

Soweit ich bisher herausfinden konnte, geht das momentan bei Base nur mit dem Tabellen-Assistenten. Ich suche noch eine Möglichkeit, das auch ohne hinzubekommen.

von berndkli » Do, 23.11.2006 10:23

Hallo Blackhell
...das ein Primärschlüssel auch aus 2 oder mehr Spalten bestehen kann.
In MySql geht das, aber bist du dir sicher dass das auch in Base geht? Wenn ja, wie? Bei meinen Versuchen liess Base immer nur eine Spalte als Priärschlüssel zu.

Gruss Bernd

von BlackHell » Do, 23.11.2006 08:58

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.

von Cherufe » Mi, 22.11.2006 23:06

Nicht MySQL benötigt primary keys, sondern OOo!
Stimmt eigentlich. Die DB läuft ja auch problemlos (ob nun mit oder ohne keys).
Ich schätze, ich sollte mir das langsam eh mal angewöhnen IDs als keys zu deklarieren. :P

von Koala » Mi, 22.11.2006 17:15

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 - )
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:2. MySQL will unbedingt primary keys in den Tabellen sehen. Egal wie unwichtig sie für die Bearbeitung sind[/b]
Nicht MySQL benötigt primary keys, sondern OOo!
Wenn ich mich recht entsinne ist das bei allen anderen unterstützten DBMS egal, nur bei MySQL eben nicht.

von Cherufe » Mi, 22.11.2006 16:14

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!

von berndkli » Mi, 22.11.2006 15:59

Hallo Cherufe

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)
Statement für die betreffende Tabelle.
Das Statement unter Extras=>SQL direkt eingeben.

Gruss Bernd

von Cherufe » Mi, 22.11.2006 15:11

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.

Re: Base/MySQL - kann Tabelle erstellen, aber nicht editiere

von Koala » Mi, 22.11.2006 10:11

Cherufe hat geschrieben:Die Verbindung zwischen Base und MySQL stelle ich über ODBC her, was auch wunderbar zu funktionieren scheint (Verbindung erfolgt).
Von ODBC habe ich bei mir auf JDBC umgestellt weil ein Timeout irgendwann keine neue Verbindung zu MySQL ermöglichte.
Aber das nur am Rande, da es bei dir so weit ja mit ODBC zu funktionieren scheint.
Cherufe hat geschrieben:Ein Teil meiner Tabellen hat explizit einen primary key, ein Teil nicht. Unterschied macht es auf Base keinen.
Für MySQL musst du IMMER einen primary key haben. Darüber bin ich Anfangs auch immer gestolpert :-)
Die Quelle dazu, wo das nach zu lesen ist, habe ich leider nicht mehr griffbereit.

OOo 2.0.4

(gelöst) kann Tabelle erstellen, aber nicht editieren

von Cherufe » Mi, 22.11.2006 04:23

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 ?

Nach oben