AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [MySQL] Stored Procedures in die DB per SQL-Script?
Thema durchsuchen
Ansicht
Themen-Optionen

[MySQL] Stored Procedures in die DB per SQL-Script?

Ein Thema von Igotcha · begonnen am 12. Apr 2006 · letzter Beitrag vom 8. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

[MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 12. Apr 2006, 14:01
Datenbank: MySQL • Version: 5.x • Zugriff über: ZEOS (6.5.x)
Hallo zusammen,

ich benutze die TZSQLProcessor-Komponente von ZEOS, um meine Tabellen und Inhalte per Script anzulegen. Leider funktioniert dies jedoch nicht bei Stored Procedures.

Der "MySQL Query Browser" liefert mir als SP-Quellcode folgendes Script (Beispiel):
SQL-Code:
DELIMITER $$

DROP PROCEDURE IF EXISTS `deletelizenz` $$
CREATE PROCEDURE `deletelizenz`(INID INT(6))
BEGIN
    DELETE FROM pim_pb_liz WHERE id=INID;
    DELETE FROM pim_pb_liz_fl WHERE lizid=INID;
    DELETE FROM pim_pb_liz_zr WHERE lizid=INID;
END $$

DELIMITER ;
Ich habe schon sämtliche Einstellungen von "Delimiter" und "Delimiter Type" bei der TZSQLProcessor versucht, aber sie "frisst" das Skript leider nicht.

Viele Grüße
Igotcha
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 28. Apr 2006, 00:43
Ich pushe mal, da ich immer noch keine Lösung für das Problem gefunden habe.

Hat jemand eine Idee, wie ich anders SPs aus meinem Programm heraus anlegen könnte?

Gruß Igotcha
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 28. Apr 2006, 05:36
Versuchs mal so:
SQL-Code:
DELIMITER $$ ;

DROP PROCEDURE IF EXISTS `deletelizenz' $$
CREATE PROCEDURE `deletelizenz`(INID INT(6))
BEGIN
DELETE FROM pim_pb_liz WHERE id=INID;
DELETE FROM pim_pb_liz_fl WHERE lizid=INID;
DELETE FROM pim_pb_liz_zr WHERE lizid=INID;
END; $$

DELIMITER ; $$
Markus Kinzler
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 28. Apr 2006, 22:45
Nee, klappt leider auch nicht so, ich werd noch irre damit

Gruß Igotcha
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 29. Apr 2006, 00:34
Zitat von Igotcha:
... um meine Tabellen und Inhalte per Script anzulegen. Leider funktioniert dies jedoch nicht bei Stored Procedures...
Gibt es für sowas denn kein MySQL-Administrations-Tool ? Ein Programm zum Anlegen einer SP zu schreiben, das sprengt doch wohl den Rahmen jedes DAUs. Der wird mit Sicherheit alle SPs anlegen, die die Welt nicht braucht. Und dann ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#6

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 29. Apr 2006, 02:26
Nein, es geht darum, dass man Module meiner Anwendung mit einem Installer installieren kann. Dazu gehört u.a. auch das Anlegen und Füllen von Tabellen - das klappt ja auch wunderbar mit dem TZSQLPorcessor. Was ich nicht hinbekomme ist, wenn das Modul SPs benötigt, diese auch gleich automatisch mit anlegen zu lassen.

Und installieren tut das auch kein Endanwender. Nur sieht das irgendwie etwas doof aus, wenn 98% der Installation automatisiert ablaufen und dann eine Meldung kommt "So, nun installieren Sie mal fix den MySQL-Query Browser, denn es müssen noch 2 SPs installiert werden."

Viele Grüße
Igotcha
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 29. Apr 2006, 11:58
Das ist IMHO sparen an der unnötigsten Stelle und macht allenfalls nur Probleme. Siehe jetzt gerade. Es hat schon angefangen. 8) Was nützt es DIR, dem Enduser eine SP vorzuenthalten ? Hat er das Zusatzmodul, welches die SP braucht nicht, dann kann der doch gar nichts damit anfangen. Ist sie aber, wenn auch nicht programmseitig mit Leben erfüllt, zumindest vorhanden, so kannst Du locker eine CD mit dem Zusatzmodul verschicken und gut ist. Und wie gesagt, die Frage hier wäre gar nicht erst aufgetaucht. Das nächste sind Demo-Versionen. Warum ist die Delphi-Demo ausgerechnet die Architect und nicht die Personal ? Für Deinen Fall würde es bedeuten, die DB für Testzwecke MIT den SPs auszuliefern. Und dann ? Der bestellt nicht alle Module und Du mußt dann auch noch ein Programm mitliefern, welches die gar nicht benötigte SP aus der DB entfernt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 29. Apr 2006, 12:11
Theoretisch sollte die Anlage von SPs mit Hilfe eines Skriptes funktionieren. Ich habe keine Erfahrungen in mysql, in FB funktioniert es aber problemlos ( in anderen DBMS sicherlich auch!)
Du mußt bei der Anlage der SP nur beachten, daß du Terminalzeichen des Create-Skriptes sauber von denen des SP-Skriptes trennst.
Was für ein Fehler kommt? U.U. hilft es die SP zum Testen zu vereinfachen und dann Stück für Stück zu erweitern.
Markus Kinzler
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#9

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 29. Apr 2006, 12:37
Naja die SP ist ja nun nicht besonders umfangreich

Also mit meiner Verison oben ging es ja schon bereits nicht und die Version von mkinzler bringt folgenden Fehler:

"You have an error in your syntax ... near 'DELIMITER $$' at line 1"

TZSQLProcessor hat die Eigenschaften:

Script(TStrings): da steht der SQL-Code drin bzw. wird mit LoadFromFile geladen

Delimiter(String): steht defaultmäßig auf ";" (aber auch das Setzen auf $$ bringt nichts)

DelimiterType [dtDefault, dtEmptyLine, dtGo, dtSetTerm]: Alle bereits durchprobiert

Aufgerufen wird as Ganze so:
Delphi-Quellcode:
TZSQLP.Parse;
TZSQLP.Execute;
Also auch nichts magisches dabei. Und wir gesagt, solange es sich um "normalen" SQL-Code handelt, funktioniert das ja auch alles problemlos (Tabellen einrichten, füllen, etc.).

Und zu den Vor-und Nachteilen, die an anderer Stelle genannt wurden: Es handelt sich dabei um eine Unternehmensanwendung und die Installationsroutinen prüfen genau, was bereits auf dem Zielsystem vorhanden ist und was nicht.

Viele Grüße
Igotcha
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [MySQL] Stored Procedures in die DB per SQL-Script?

  Alt 30. Apr 2006, 19:28
Problem gelöst, siehe hier.

Gruß Igotcha
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:48 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