AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL .sql ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL .sql ausführen

Ein Thema von SyntaxXx · begonnen am 24. Jul 2013 · letzter Beitrag vom 26. Jul 2013
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

MySQL .sql ausführen

  Alt 24. Jul 2013, 23:09
Datenbank: MYSQL • Version: 5.5.27 • Zugriff über: dbExpress
Nabend zusammen,
ich versuche mich gerade an einer MySQL Datenbank, bzw das Importieren einer solchen.

Dazu habe ich von dbExpress "TSQLConnection" und "TSQLQuery" eingerichtet.
Einfache Abfragen funktionieren auch wunderbar, doch das Ausführen einer ganzen .sql Datei funktioniert leider nicht.

Dazu habe ich einfach mal eine Testdatenbank geladen: http://www.mysqltutorial.org/mysql-sample-database.aspx
Dort musste ich noch "USE `classicmodels`;" zu "/*USE `classicmodels`;*/" ändern, damit ich meine Datenbank verwenden konnte.

Aber wenn ich nun die Querys aus der Datei ausführen möchte bekomme ich folgenden Fehler:

Zitat:
xception-Klasse TDBXError mit Meldung
'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CH' at line 18'.
Ich verstehe aber nicht, warum diese Meldung kommt.
Wenn ich das über PHPMyAdmin aufrufe, funktioniert alles wunderbar.


Desweiteren würde mich noch interessieren, ob man auch eine Verbindung mit "TSQLConnection" herstellen kann, ohne eine DB anzugeben, da ich diese erst zur Laufzeit erstellen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: MySQL .sql ausführen

  Alt 25. Jul 2013, 08:45
Wenn ich das über PHPMyAdmin aufrufe, funktioniert alles wunderbar.
Wie rufst Du es Denn über PHP auf ? Im Reiter Importieren oder SQL ?

Eine einfache Query kann nicht ein komplettes SQL-Skript abarbeiten.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#3

AW: MySQL .sql ausführen

  Alt 25. Jul 2013, 13:36
Achso natürlich, sollte man vielleicht erwähnen ^^
Also über PhpMyAdmin über den Reiter "importieren".


Über mein Programm:

Delphi-Quellcode:
SQLQuery.SQL.LoadFormFile(Edit1.Text); // Pfad/script.sql
SQLQuery.Open;

Ich habe gedacht, da es ja die Funktion "LoadFromFile" gibt, sollten daher mehrere Befehle problemlos möglich sein.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: MySQL .sql ausführen

  Alt 25. Jul 2013, 13:54
Daraus kann man die Funktionalität nicht ableiten.

Teilweise muss ein Skript noch interpretiert werden (z.B. bei MSSQL das "GO"), bzw. hier muss das Skript 1:1 an den Server geschickt werden.

Einige Komponenten prüfen ihrerseits aber nochmal die Syntax und werfen dann einen Fehler bevor der Server was von dem Skript sieht
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#5

AW: MySQL .sql ausführen

  Alt 25. Jul 2013, 13:58
Ok das heißt, ich muss das Script irgendwie an den Server senden, ohne das eine Überprüfung statt findet?

Es wird doch bestimmt eine saubere Lösung geben, anstatt die Fehler abzufangen aber einfach zu ignorieren oder?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: MySQL .sql ausführen

  Alt 25. Jul 2013, 14:07
Nach meiner kleinen Google Rundreise, sieht es wohl so aus, dass du bei dbExpress tatsächlich das Skript auseinanderpflücken musst und jeden Befehl einzeln zum Server schickst.

Am Besten sogar mit Delphi-Referenz durchsuchenTSQLConnection.ExecuteDirect

BTW wenn du XE4 hast, warum dann nicht mit FireDAC Bei Google suchenTADScript?
(Das ist bei der Architect Version doch inklusive)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (25. Jul 2013 um 14:10 Uhr)
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#7

AW: MySQL .sql ausführen

  Alt 26. Jul 2013, 23:02
Hmmm jetzt bin ich aber ein wenig erstaunt, dass etwas recht einfaches nicht einfach so umzusentzen ist.
Es muss ja nur Text an den Server gesendet werden. Der Rest wird ja automatisch verarbeitet.


Jetzt habe ich mir mal die ZeosLib angesehen, aber auch damit geht es nicht.

Jetzt stelle ich mir die Frage, wie ich am effektivsten das Script zerlege, dass jeder Command einzeld ausgeführt wird.
Je nach Datenbank, sind es ja mehrere tausend Zeilen.
Ich weiß nicht, wie ich die effektiv zerlegen soll.
  Mit Zitat antworten Zitat
EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: MySQL .sql ausführen

  Alt 26. Jul 2013, 23:10
??? Zeos: Die Antwort lauted TZSQLProzessor... Der zerlegt dir das Script. Achte auf korrekte Delimiter, ansonstent wird keine Componente das Script splitten können. Welche verwendest du? ";" gilt hier nicht in jedem Fall!

Geändert von EgonHugeist (26. Jul 2013 um 23:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:56 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