AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelle existiert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle existiert nicht

Ein Thema von Delbor · begonnen am 20. Mär 2017 · letzter Beitrag vom 24. Mär 2017
Antwort Antwort
Seite 2 von 4     12 34      
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#11

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 12:41
Normalerweise ist es so (seit es 64 Bit Windows Betriebssysteme gibt):
Datenbank 32/64 bit, egal
Datenbankclient 32 / 64 bit passend zum aufrufenden Programm
Anwendung 32 / 64 bit benötigt einen Datenbankclient (Treiber) der gleichen Bittigkeit

Wenn Du also ein 32 Bit Programm baust, brauchst Du einen 32 Bit Datenbanktreiber, egal wie die Bittigkeit der DB ist.

Analog für ein 64 Bit Programm
Gruß, Jo
  Mit Zitat antworten Zitat
Delbor

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

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 12:44
Hi Mikhal

Zitat:
Gab es im MySQL-Verzeichnis kein WOW64-Unterverzeichnis?
Nein - sowas kenne ich nur von Windows. Im übrigen: nicht alle von dem msi-Installer angelegten Programme waren 64Bit.

Zitat:
Wie hast du die Datenbank von deinem alten Rechner auf den neuen Rechner transferiert - als Backup oder als Kopie?
Per Heimnetzwerk hab ich das entsprechende Verzeichnis geöffnet und da <Verzeichnis verschieben> gewählt - glaube ich wenigstens. Das ist auch schon wiedder etwas her.
Wie auch immer - ein via MySQL erstelltes Backup wars sicher nicht.

Zitat:
Findest du fehlende Tabelle mit deinem Admin-Tool?
Jein - Als Admintool verwende ich neben dem angeprochenen Workbench noch HeidiSQL. Letzters kennt zwar eine Datenbank contentmasterdata, aber deren Tabellen nicht. Wobei die entsprechende Connection angelegt wurde, als noch MySQL64 installiert war.
Workbench hingegen zeigt mir die Tabellennamen an, nicht aber Colums, Indexes und Foreignkeys, die eigentlich"mit im Angebot" wären.

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
Delbor

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

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 12:52
Hi jobo

Zitat:
Wenn Du also ein 32 Bit Programm baust, brauchst Du einen 32 Bit Datenbanktreiber, egal wie die Bittigkeit der DB ist.
Dann war das nicht wirklich das Problem. Bleibt noch die Versionsnummer der libmysqsl, die für mein Empfinden deutlich unter der des Severs lag (5.5.x / 5.7.x). Aber ob das in jedem Fall problematisch ist, entzieht sich meiner Kenntnis.

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
nahpets
(Gast)

n/a Beiträge
 
#14

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 12:59
Langsam kommt mir der Verdacht, dass die interne Verwaltungsstruktur der Datenbank geschreddert wurde.

MySQL hat, wie auch andere Datenbanken, ein INFORMATION_SCHEMA

Ein Select * from INFORMATION_SCHEMA.TABLES sollte Klarheit über die vorhandenen Tabellen bringen.

Über ein Select * from INFORMATION_SCHEMA.COLUMNS sollten dann die Spalten zu finden sein.

Zur Fehlereingrenzung:
Was bringen die beiden folgenden SQL für ein Ergebnis?

SQL-Code:
select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'kategorien_tabelle';

select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'kategorien_tabelle';
Stimmen die Ergebnisse mit dem erwarteten überein?

Wenn nein, welche Abweichungen zum Erwarteten gibt es?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#15

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 13:11
Langsam kommt mir der Verdacht, dass die interne Verwaltungsstruktur der Datenbank geschreddert wurde.
Eben, deswegen habe ich vorgeschlagen, probehalber eine Tabelle zu löschen und neu anzulegen. Meinetwegen auch eine ganz neue, die es nicht bereits gibt und den Zugriff darauf testen.
Gruß, Jo
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#16

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 13:29
Ja, meiner Meinung nach sollte hier systeamtisch vorgegangen werden.

Show Tables liefert ja ein Ergebnis.

Alles was da rauskommt wird der Reihe nach mit Select * from abgefragt.

Bei Fehlern werden die erstmal nur protokolliert.

Sind alle Abfragen durch, wird geprüft, ob es bei den Fehlern irgendwelche Zusammenhänge gibt.

Zur Fehleranalsyse sollte das Information_Schema dann genauestens durchforstet werden.

Hier stehen die von MySQl genutzten / benötigten Dateien drin INFORMATION_SCHEMA FILES.

Nötigenfalls wird ein Select * from INFORMATION_SCHEMA.FILES gemacht und geprüft, ob die dort aufgeführten Dateien auch alle an der dort aufgeführten Stelle zu finden sind.

Was wo zu finden sein sollte, müsste hier genauer aufgeführt sein: NDB Notes
  Mit Zitat antworten Zitat
Delbor

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

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 15:04
Hi zusammen

Ich hab die beeiden von Nahpeds geposteten Statements mal getestet. Dazu hab ich in einem Frame eine Prozedur angelegt:

Delphi-Quellcode:
procedure TServerInfoFrame.TestShowTables;
  var SqlString : String; i : Integer;
begin
  SqlString := 'select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = kategorien_tabelle'; // <=
  FDMySQLDml.FDMySQLQueryInfo.SQL.Text := SqlString;
  FDMySQLDml.FDMySQLQueryInfo.Open;
  FDMySQLDml.FDMySQLQueryInfo.First;
  i := 1;
  while (not FDMySQLDml.FDMySQLQueryInfo.Eof) do
  begin
    Memo1.Lines.Add('*************'); FDMySQLDml.FDMySQLQueryInfo.Fields.Fields[0].AsString;
    FDMySQLDml.FDMySQLQueryInfo.Next;
    inc(i);
  end;
  FDMySQLDml.FDMySQLQueryInfo.Close;
// select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'kategorien_tabelle';

end;
Den SQL-Sring hab ich dann wahlweise mit dem erste, bzw. dem zweiten Statement belegt.
Die Fehlermeldungen:

Zitat:
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Unknown column 'kategorien_tabelle' in 'where clause'' aufgetreten.
Zitat:
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Unknown column 'kategorien_tabelle' in 'where clause'' aufgetreten.
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
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 15:21
Ich vermute mal, dass der MySQL-Dienst auf dem alten Rechner lief, während du die Datenbank kopiert hast. Dabei ist sie dann wohl geschreddert worden.

Ich hoffe, die Datenbank funktioniert noch auf dem alten Rechner, dann erstelle dort mal ein Backup und restore dieses Backup auf dem neuen Rechner. Dann sollten sich deine Probleme (hoffentlich) in Luft auflösen.

Grüße
Mikhal

PS: Die Tabellenamen müssen in Hochkomma gesetzt werden.
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#19

AW: Tabelle existiert nicht

  Alt 22. Mär 2017, 15:35
Du suchst hier nach Tabelleninhalten, von daher muss das wohl eher so aussehen:

SqlString := 'select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = ''kategorien_tabelle'' ';

Oder so:
Delphi-Quellcode:
SqlString := Format('select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = %s',
[QuotedStr('kategorien_tabelle')])';
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#20

AW: Tabelle existiert nicht

  Alt 23. Mär 2017, 09:02
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.
Ehrlich gesagt, wäre das das erste gewesen, was ich gemacht hätte, um festzustellen, ob das nur eine Tabelle betrifft, die vllt. kaputt ist oder aber alle, dann liegt ein systematischer Fehler vor.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz