Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ZEOS + TZStoredProc Problem (https://www.delphipraxis.net/173925-zeos-tzstoredproc-problem.html)

Laaeris 24. Mär 2013 17:47

Datenbank: mySQL • Version: 5 • Zugriff über: Internet

ZEOS + TZStoredProc Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

ggf. sehe ich den Wald vor lauter Bäumen nicht... Aber ich bekomme eine seltsame Fehlermeldung.
Hier das Environment: Delphi XE 2 Starter, mySQL 5 Server, ZEOS 6.6.6

(getestete funktionierende Procedure in der DB):
CREATE PROCEDURE `laaeris`.`Macht_Kontoaenderung` (in_Macht varchar(50), in_aenderung int)
BEGIN
UPDATE laaeris.Maechte SET Kontostand=Kontostand+in_aenderung
WHERE Macht=in_Macht;

Aufruf im Delphicode:
Delphi-Quellcode:
  K_StoredProc := TZStoredProc.Create(Datamodul);
  try
    K_StoredProc.Connection:=Datamodul.BT_Connector;
    K_StoredProc.StoredProcName:='Macht_Kontoaenderung'; //<--- hier steigt er aus
    K_StoredProc.ParamByName('in_Macht').AsString:=Macht;
    K_StoredProc.ParamByName('in_aenderung').AsInteger:=Summe;
    K_StoredProc.ExecProc; //da ohne Ergebnismenge, sonst per Open
  finally
    K_StoredProc.Close;
    K_StoredProc.Free;
  end;
Fehlermeldung ist als Bild angefügt, nur die IP-Adresse ist geschwärzt.
Was mache ich Dummbatz falsch?

Viele Grüße,

David

jobo 24. Mär 2013 21:26

AW: ZEOS + TZStoredProc Problem
 
Ein (My)SQL Rechteproblem beim Hoster?

Wenn Du nach der Fehlermeldung suchst (im Internet) findest Du z.B.:
"The process attempts to perform a SELECT statement on the 'proc' table. The 'proc' table is a system table which retains the procedures of all users on that mysql instance. On shared hosting, allowing userA to see the procedures of userB, which would include information about table structure, etc., would be considered breach of security.
A workaround has been documented on several mysql resources which indicates this can be fixed by adding "Use Procedure Bodies=false;" to the connection string, i.e.: "


Vielleicht hilfts..

Laaeris 25. Mär 2013 18:34

AW: ZEOS + TZStoredProc Problem
 
...leider nein... oder ich bin an der falschen Stelle.

Ich habe die Komponente TZConnector in der Eigenschaft Properties(Strings) um die Zeile
Use Procedure Bodies=false
ergänzt.

Leider keine Veränderung am leider negativen Verhalten... :-(

Viele Grüße,

David

Laaeris 26. Mär 2013 19:03

AW: ZEOS + TZStoredProc Problem
 
...ich habe es jetzt vorerst so gelöst:

TZQuery-Komponente nehmen und dann dort den SQL-String belegen mit:
bspw. 'Call laaeris.Macht_Kontoaenderung(''neutral'',1);'

Anschließend
Delphi-Quellcode:
 TZQuery_alternativ_zu_K_StoredProc.ExecSQL;
Und fertig, geht.

Ehrlich: So ganz zufrieden bin ich nicht, wofür habe ich die schöne Komponente TZStoredProc, nur für eigene DB's mit nur einem Schema?
Aber was soll's, ich kann wieder ruhig schlafen. Kommentare trotzdem gerne!

Viele Grüße,

David


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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