Thema: Delphi Tabelle existiert nicht

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 12:25
Hi Jobo

Vielen Dank für deine Antwort! Sie hat mich auf einige Details aufmerksam gemacht, die ich zwar irgendwo im Hnterkopf hatte, die mir aber nicht wirklich bewusst waren.

Zitat:
sorry, ich blick nicht mehr durch, was alles verschoben, zurückkopiert, neuinstalliert, 32 / 64 bit und soweiter ist.
  • Auf meinem Rechner läuft Win10/64Bit
  • Deshalb hab ich ursprünglich MySQL64-Bit installiert.
  • Mein Programm ist eine 32Bit-Anwendung
  • So hab ich jetzt MySQL64 wieder deinstalliert und
  • MySQL32 installiert.

Zum verschieben von Dateien:
  • Standardmässig wird das Dataverzeichnis auf C\: Programmdata\MySQLServer(...).Data angelegt. Da befinden sich die ServerDatenbanken(performannce_schema,mysql etc.)
  • Diese da liegenden Daten habe ich in mein Verzeichnis F:\Databases 1 kopiert (Da ist auch genügend Platz vorhanden). Ich mach das nicht zum ersten mal.
  • Dieses Vorgehen geht auf eine Empfehlung hier in diesem Forum zurück und hat auf meinem alten Rechner einwandfrei funktioniert.
  • Um Sicherzustellen, das der Server im ursprünglich angelegten Verzeichnis keine Daten mehr ausliest, habe ich die da liegenden Daten in ein Verzeichnis ..\Data\Archiv verschoben.


Entstanden ist die Datenbank auf meinem alten 32Bit-Rechner. Als ich mir die aktuelle Maschine (Win10/64Bit) zulegte, kopierte ich die DB via Heimnetzwerk von der alten auf die neue Kiste. Dann hab ich sie in MySQL-Workbench geöffnet. Die war wie der installierte Server 64Bittig. Somit wäre denkbar, dass auch die Dateien jetzt für 64Bit angelegt sind, nachdem ich das Modell abgeändert/ergänzt hatte und davon eine DB erstellen liess und die somit von einem 32Bit-Programm nicht mehr gelesen werden kann.

Zitat:
Mein Ansatz wäre nun mangels Durchblick folgender:
Die fragliche Tabelle mit mysql werkzeug, also SQL Befehlen löschen und wieder herstellen (zunächst nur DDL), dann die Daten wieder einfügen. Alles so basic wie möglich, Kommandozeile, SQL Befehle, jeden Schritt soweit möglich mit Hilfe von Dictionary Abfragen prüfen. Also z.B. :
Ich denke, mit dem Neuerstellen der Tabelle hast du recht. Allerdings gehe ich davon aus, dass mein Programm nicht nur diese, sondern alle andern Tabellen der DB nicht findet/finden würde. Eine Bestätigung dessen hab ich zwar nicht, ausser dass das Programm auf meinem alten 32Bit-Rechner einwandfrei funktioniert hat. Sicher, ich könnte die AV abfangen und weitermachen. Aber wenn diese Tabelle nicht gefunden wird, gibt es keinen Grund,weshalb die andern Tabelle gefunden werden sollten. Dies daher, weil die SQL-Anweisungen von MySQL-Workbench automatisch (und somit mehrfach geprüft), erstellt wurden.
Aber eben: eine 64Bit-Version von Workbench erstellt auch eine 64Bit-Datenbank - das fängt schon bei den Datentypen an.

Somit wäre denkbar, dass auch die Dateien jetzt für 64Bit angelegt sind, nachdem ich das Modell abgeändert/ergänzt hatte und davon eine DB erstellen liess und die somit von einem 32Bit-Programm nicht mehr gelesen werden kann.

Zitat:
Warum sollte ein Client bei einer Tabelle im Zugriff eine Ausnahme machen und diese anders behandeln als andere Tabellen?
Genau deshalb versuche ich gar nicht, ob auf andere Tabellen ein Zugriff möglich wäre.

Zitat:
Deine Vermutung bezüglich der Zugriffskomponenten scheint mir nicht plausibel.
Aufgrund der Tutorials auf den Embarcadero-Seiten, insbesondere jenes über das Query, muss ich dir wohl recht geben - andrerseits bin ich immer noch dabei, mich in Firedac einzuarbbeiten. Und das ist wesentlich komplexer, als es seinerzeit die BDE war.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat