Fehler bei Stored Function

  • Themenstarter Themenstarter feete
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
F

feete

Gast
Hallo,
ich finde meinen Fehler leider nicht. ich versuche mich grade an stored functions. soweit mein stand...
leider liefert reString nur null zurück. ich bin mir mit den ? in dem preparedCall nicht ganz sicher, man beginnt bei zählen mit 1 oder? das ergebnis wird also mit cstmt.getString(1); geholt?

hier der java code. auftrag_Oid ist z.B. 3

Code:
	public String getTest(int auftrag_Oid) 
	{
		String reString = null;
		
		try
		{
			cstmt = con.prepareCall("{ ? = call getTest(?) }");
			cstmt.setInt(2, auftrag_Oid);
			cstmt.execute();
			reString = cstmt.getString(1);
		}

function getAuftragsstatus:

Code:
...
CREATE FUNCTION `getTest`(Auftrag_Oid INT) RETURNS varchar(40) CHARSET latin1
BEGIN
     DECLARE a VARCHAR(40);
     SELECT astatus INTO a FROM sposten WHERE oid=Auftrag_Oid;
     RETURN a;
    END
...

die abfrage

Code:
  SELECT astatus FROM sposten WHERE oid=1;

liefert das gewünschte ergebnis


gruß feete
 
Hallo,
wenn ich mir die Funktion anschaue, fällt mir folgendes auf.



Code:
CREATE FUNCTION `getTest`(Auftrag_Oid INT) RETURNS varchar(40) CHARSET latin1 
BEGIN 
     DECLARE a VARCHAR(40); 
     SELECT astatus INTO a FROM sposten WHERE oid=Auftrag_Oid; 
     RETURN a; 
    END

dein Code

DECLARE a VARCHAR(40); Wo wird a gesetzt ????

das hilft dir vielleicht weiter !!!

Gruß Michael
 
:-/ Was machst Du denn da?

Du willst doch bestimmt sowas:
Code:
cstmt = con.prepareCall("{ call getTest(?) }"); 
cstmt.setInt(1, auftrag_Oid); 
ResultSet rs = cstmt.executeQuery(); 
reString = rs.getString(1);

Stimmts?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben