Announcement

Collapse
No announcement yet.

Insert Into mit Prozedur

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert Into mit Prozedur

    Hallo,

    ich habe ein riesen Problem wo ich einfach nicht weiter komme.
    Ich hoffe hier hat jemand eine Idee.

    Also ich habe eine Tabelle "KHKAdressen", "tSANAdressenImport" und die Prozedur "spSysTAN" liefert mir einen Wert aus einer Tabelle, erhöht einen usw.

    Hier meine Prozedur welche falsch ist, SQL Server meint er könne die Prozedur nicht finden.

    INSERT INTO KHKAdressen (Adresse, [Name1], [Name2], [Matchcode], [Erstkontakt],
    [Gruppe], [Sprache], [LieferStrasse], [LieferZusatz], [LieferOrt], [LieferLand],
    [LieferPLZ], [Telefon], [Telefax], [Email], Mandant)
    SELECT (spSysTan('KHKAdressen',1,1),
    [Name1], [Name2], [Matchcode], [Erstkontakt], [Gruppe], [Sprache], [LieferStrasse], [LieferZusatz], [LieferOrt],
    [LieferLand], [LieferPLZ], [Telefon], [Telefax], [Email], 1)
    FROM ['tSANAdressenImport']


    Wer hat ne Idee wie es richtig ist.
    Mfg
    Frank

  • #2
    Hallo Frank,

    sieh an, noch ein Sage-Leidgeprüfter.

    Geht so nicht, die Tan musst Du Dir erst in eine Variable holen:
    [highlight=SQL]DECLARE @myTan int;
    EXEC dbo.spSysTan @Table = 'KHKAdressen', @Mandant = 88, @Increment = 1, @Tan = @myTan OUTPUT

    INSERT INTO ...
    SELECT @myTan, ...[/highlight]
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf,

      bist du auch ein Leidensgenosse aus dem Sage Umfeld?

      Ja ja die Liebe Office Line und Ihre ganzen Tan's

      Danke für den Tipp, ich teste gleich mal...

      MFG
      Frank

      Comment


      • #4
        Hi

        ich bin zwar schon weiter ob so richtig funktioniert es nicht

        Ein Select welcher eine Skalare Funktion beinhaltet
        Code:
        select top 1 adresse, dbo.SanGetTan('khkAdressen', 1) as test from khkadressen
        Die Skalare Funktion
        Code:
        GO
        /****** Objekt:  UserDefinedFunction [dbo].[SANGetTan]    Skriptdatum: 07/13/2009 16:49:29 ******/
        SET ANSI_NULLS ON
        GO
        SET QUOTED_IDENTIFIER ON
        GO
        ALTER FUNCTION [SANGetTan]  (@Tabelle as Char, @Mandant as SmallInt)
        RETURNS int  AS   
        
        BEGIN 
        	DECLARE @myTan int
        	DECLARE @TAN int
        	--EXECUTE dbo.spSysTan 'KhkAdressen', '1', '1', @TAN = @myTan OUTPUT
        	EXEC dbo.spSysTan @TABLE = 'KHKAdressen', @Mandant = 88, @Increment = 1, @Tan = @myTan OUTPUT
        return @myTan
        END
        GO
        bei dem Aufruf im SQL Select (Code 1) erhalte ich diese Fehlermeldung

        Nur Funktionen und erweiterte gespeicherte Prozeduren können innerhalb einer Funktion ausgeführt werden.

        Ich muss aber die TAN immer wieder neu abfragen sonst habe ich immer die gleiche TAN.

        Idee?

        Frank

        Comment


        • #5
          Hallo Frank,

          jupp, habe auch die Sage OL und bin fleissig dabei, auf die neue Evo zu migrieren.
          Die TANs sind Segen und Fluch zugleich (übrigens, der Fix in der spSysTan aus 2006 rührt von einem Problem, das ich gemeldet hatte ).

          Ich wollte es noch dazu schreiben; auf die Art kannst Du nur eine TAN generieren.
          Mit der SP geht es AFAIK nicht anderes / besser. Du kannst die Funktion der spSysTan auch nicht in eine eigene Function übernehmen, den da werden INSERT / UPDATE verwendet; geht also auch nicht.

          Du kannst Deine Tabelle 'tSANAdressenImport' nur über einen Cursor öffnen, jedes mal eine TAN generieren lassen und die Adressen einzeln einfügen.

          Oder Du legst in 'tSANAdressenImport' ein weiteres Feld TAN an, holst Dir über über spSysTan die benötigte Anzahl TANs (über den Parameter Increment) ab, machst ein UPDATE auf Deine Tabelle und überträgst die Daten an.

          Alles im allen nicht gerade Komfortabel.
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment

          Working...
          X