![]() |
Datenbank: Firebird / MSSQL • Version: 2.0 / 2008 • Zugriff über: IB / ADO
Firebird -> MSSQL
Hallo!
Ich bin gerade dabei bei uns in der Firma die Datenbank von FIrebird auf MSSSQL umzustellen. Nun habe ich aber Probleme bei einer gespeicherten Prozedur. In Firebird sieht diese so aus:
SQL-Code:
Nun habe ich versucht dies auf MSSQL umzustellen. Nur leider weiß ich nicht, wie ich die Zeile "(BELEGNR BETWEEN :ANGEBOTYEAR || '00000' AND :ANGEBOTYEAR || '99999')" in MSSQL umzusetzten habe, da ich nicht weiß wie man "||" auf varchar in MSSQL umsetzt.
declare variable num varchar(20);
declare variable rnr varchar(30); declare variable cval varchar(5); declare variable nu varchar(30); /*nullen */ declare variable i integer; declare variable c integer; begin FOR SELECT MAX(BELEGNR) FROM ANGEBOTE WHERE ((BELEGNR BETWEEN :ANGEBOTYEAR || '00000' AND :ANGEBOTYEAR || '99999') AND (FIRMA=:FIRMAINT) AND (TYP=:ANBTYP)) INTO rnr DO if (NOT rnr IS NULL) then begin nu = ''; i = 5; c = 0; WHILE (i<10) DO BEGIN cval=substr(rnr,i,i); if (cval='0') then begin /*if (c<5) then */ begin c = c + 1; nu=nu || cval; end end else i=11; i= i + 1; END num = CAST(substr(rnr,3,7) AS INTEGER)+1; ANGEBOTNR = CAST(num AS varchar(20)); end else begin ANGEBOTNR=1; end Suspend; end Vielleicht könnt ihr mir ja helfen. Danke |
Re: Firebird -> MSSQL
|
Re: Firebird -> MSSQL
Hallo,
ich weiß wenig über MS-SQL, aber soviel habe ich bei meiner Arbeit an ![]() String-Verknüpfung geht über das Plus-Zeichen. Namen von Parametern und lokalen Variablen müssen immer mit '@' beginnen. Input- und Output-Parameter werden gemeinsam im Kopf deklariert, lokale Variable innerhalb des Rumpfes. Ich befürchte, du wirst beim Zugriff auf Daten innerhalb der SP noch auf erhebliche Probleme stoßen. Da habe ich im Wikibook unter "SQL-Programmierung" noch erhebliche MS-Lücken. Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz