Nö, wenn ich bei :zeitstempel '2007-12-10 12:12:12' eingebe, dann schreibt er mir "12" unbekanntes Token in Zeile 1
Announcement
Collapse
No announcement yet.
Schreiben einer UDF
Collapse
X
-
Hallo nochmal,
naja Ahnung hab ich jetzt schon, warums nicht geht, meine zeitstempel werden einfach in einen String umgewandelt und daher werden die Zeitstempel nicht mehr erkannt,
Gibts da noch Abhilfe oder muss ich mir etwas anderes suchen,
Code:SQL = 'select zeitstempel, wert from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || :zeitstempel1 || ' AND ' || :zeitstempel2;
lg
Comment
-
Hallo Markus,
Vielen dank, jetzt funktioniert die 2. Abfrage,
tut mir leid, dass ich so oft fragen musste,
eine hätte ich noch und zwar möchte ich das gleiche bei der ersten SELECT- abfrage auch machenm da mag er aber den Semicolon nicht;
Code:declare variable SQLCOUNT varchar(1024); declare variable SQL varchar(1024); declare variable i integer; declare variable skipAnzahl integer; declare variable tupelGesamt integer; begin i = 0; SQLCOUNT = 'select count(*) from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || F_SQM() || :zeitstempel1 || F_SQM() || ' AND ' || F_SQM() || :zeitstempel2 || F_SQM() || ';'; FOR EXECUTE STATEMENT SQLCOUNT INTO :tupelGesamt; /* hier kennt der compiler den ; nicht */ skipAnzahl = tupelGesamt/PixelAnzahl; SQL = 'select zeitstempel, wert from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || F_SQM() || :zeitstempel1 || F_SQM() || ' AND ' || F_SQM() || :zeitstempel2 || F_SQM() || ';'; FOR EXECUTE STATEMENT SQL INTO :zeitstempel, :wert do begin i = i + 1; IF (mod( i, skipAnzahl) = 1) then suspend; end end
Vielen Dank nochmal,
lg
Comment
-
Hallo,
Hätte noch eine Frage und zwar wenn das Ergebnis der Division skipAnzahl = :tupelGesamt/PixelAnzahl; < 0 ist, dann möchte ich alle Tupel ausgeben nur das funktioniert im unteren Code nicht,
Weiß da jemand noch einen Rat?
Vielen Dank!!!
lg
Code:declare variable SQLCOUNT varchar(1024); declare variable SQL varchar(1024); declare variable i integer; declare variable skipAnzahl integer; declare variable tupelGesamt integer; begin i = 0; SQLCOUNT = 'select count(*) from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || F_SQM() || :zeitstempel1 || F_SQM() || ' AND ' || F_SQM() || :zeitstempel2 || F_SQM() || ';'; EXECUTE STATEMENT SQLCOUNT INTO tupelGesamt; skipAnzahl = :tupelGesamt/PixelAnzahl; IF (skipAnzahl > 0) then begin SQL = 'select zeitstempel, wert from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || F_SQM() || :zeitstempel1 || F_SQM() || ' AND ' || F_SQM() || :zeitstempel2 || F_SQM() || ';'; FOR EXECUTE STATEMENT SQL INTO :zeitstempel, :wert do begin i = :i + 1; IF (mod(:i, :skipAnzahl) = 1) then suspend; end end ELSE begin SQL = 'select zeitstempel, wert from ' || :Tabelle || ' WHERE zeitstempel BETWEEN ' || F_SQM() || :zeitstempel1 || F_SQM() || ' AND ' || F_SQM() || :zeitstempel2 || F_SQM() || ';'; FOR EXECUTE STATEMENT SQL INTO :zeitstempel, :wert do begin end end end
Comment
Comment