PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp (http://www.selfphp.de/forum/showthread.php?t=19902)

Splitter 27.07.2008 23:24:00

Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Hallo, meine Frage ist:

Eine Funktion wurde in MySQL-Administrator erstellt (Stored Procedure).
Return-Wert: z.B. 4, 0.25, 2.5 usw.
Die Variable tMultiplikator wurde als FLOAT deklariert. Diese wird im Laufe der Funktion mit einem Wert belegt und schlussendlich an RETURN übergeben.

Soweit richtig.
Nun: Die aufrufende SQL-Abfrage stellt den Wert nur als Ganzzahlwert dar, also z.B. 4, 0, 2 usw.

Dazu passt das folgende Zitat von Kofler, PHP 5 & MySQL 5, Addison-Wesley 2006, S. 504:
>MySQL macht sich momentan nicht die Mühe, den korrekten Datentyp bei der Übergabe
>von Parametern zu überprüfen – aber vielleicht ändert sich das in künftigen Versionen
>noch.

Frage: Wie kriege ich den Wert richtig übergeben?

Hinweis: Server 5.0.51b-community via TCP/IP
Client 5.1.11
WinXP SP2

Danke vorab für die Hilfe!

feuervogel 28.07.2008 08:05:38

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Du musst den korrekten Datentyp bei der Übergabe der Parameter wohl selbst überprüfen.

Splitter 28.07.2008 21:51:45

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Also, wie ich schrieb, hatte ich das ja überprüft.
Und das Ergebnis der Überprüfung war, dass die Übergabe nicht stimmt.

Die Antwort hilft mir nicht so wirklich weiter. Schade ...

feuervogel 28.07.2008 22:34:48

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Zitat:

Zitat von Splitter (Beitrag 118954)
Die Antwort hilft mir nicht so wirklich weiter. Schade ...

Es wird Dich überraschen, aber wie wäre es mal, wenn Du uns die stored procedure zeigst?

Splitter 29.07.2008 01:11:57

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ok, habe die Funktion (Stored procedure) und die Abfrage reingehängt.
Wäre schön wenn jemand drüber kucken könnte.

Danke!

PS: Habe die Funktion soweit runtergekürzt, dass der "Fehler", wenn es einer ist, noch vorführbar ist, ohne den Leser mit langen Berechnungen zu langweilen.

Splitter 29.07.2008 22:32:28

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Hallo, konnte sich schon jemand meines Problems annehmen?

Vielen Dank nochmal im voraus!

Splitter 30.07.2008 17:55:35

AW: Stored Procedure - Aufrufende SQL-Abfrage erhält falschen Datentyp
 
Hm, kann offenbar keiner was anfangen mit meiner Frage.
Schade ...
Aber dennoch danke fürs Drüberlesen ...

Splitter 30.07.2008 21:09:50

Lösung
 
Die Lösung ist denkbar einfach.
In der ersten Zeile wird der Datentyp definiert, der an die Abfrage übergeben wird.

CREATE DEFINER=`Name`@`localhost` FUNCTION `Kapital`(vISIN varchar(30), vDatum DATE) RETURNS int(11)
BEGIN

...

Richtig muss es also heißen:
RETURNS float(10,4)

Alles klar, aber danke nochma für die Hilfe.

mfg Splitter


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:09:09 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.