AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird -> MSSQL

Ein Thema von daywalker9 · begonnen am 4. Jan 2010 · letzter Beitrag vom 4. Jan 2010
Antwort Antwort
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#1

Firebird -> MSSQL

  Alt 4. Jan 2010, 09:35
Datenbank: Firebird / MSSQL • Version: 2.0 / 2008 • Zugriff über: IB / ADO
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:
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 || '00000AND :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
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.

Vielleicht könnt ihr mir ja helfen.

Danke
Lars
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Firebird -> MSSQL

  Alt 4. Jan 2010, 10:23
Hallo,

einfach ein + (Plus) nehmen.

Gefunden hier (unter B)
1


Heiko
Heiko
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: Firebird -> MSSQL

  Alt 4. Jan 2010, 10:28
Hallo,

ich weiß wenig über MS-SQL, aber soviel habe ich bei meiner Arbeit an [wikibooks] Einführung in SQL gelernt:

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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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