Office: (Office 2003) Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server

Helfe beim Thema Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe auf meinem BE, einer SQL-Server 2008-DB eine Stored Procedure, die ich aus ACCESS heraus nutzen möchte. Dieser Prozedur muss ein... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von cheaptrick, 7. Februar 2011.

  1. Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server


    Hallo,

    ich habe auf meinem BE, einer SQL-Server 2008-DB eine Stored Procedure, die ich aus ACCESS heraus nutzen möchte.
    Dieser Prozedur muss ein Parameterstring in folgendem Format übergeben werden:
    [Parameter1] = 'Wert1', [Parameter2] = 'Wert2', [Parameter3] = 'Wert3', [Parameter4] = 'Wert4', ...

    Um Missverständnissen vorzubeugen: Die SP ist so konzipiert, dass sie nur einen Parameter erwartet und diesen dann in seine Einzelteile zerlegt.
    Ich verzweifele gerade an der richtigen Übergabe der Daten, da ich immer irgendwelche Fehlermeldungen bekomme.

    Hier der Code:
    Code:
    Innerhalb des Strings dürfen die Parameter eine beliebige Reihenfolge haben.
    Der Bezeichner des Parameters muss in eckigen Klammern stehen. Die wird von der SP gefordert, da der Parameter zunächst mit Werten in einer Tabelle verglichen wird um die Art der Weiterverarbeitung zu ermitteln.

    Hat jemand ne Idee, was da falsch läuft? Hab schon alle möglichen Varianten an Hochkommas versucht.

    Gruß

    cheapy

    :)
     
    cheaptrick, 7. Februar 2011
    #1
  2. 100%ig verstehe ich das noch nicht.
    Wie sieht denn der Parameter-Teil der sp genau aus?
    Lass Dir auch vor'm Aufruf der sp den String SParams mal zum Prüfen ausgeben.
     
    fraeser, 9. Februar 2011
    #2
  3. Hallo
    ich denke Du hast eine ungereimtheit mit ''"
    der vorschlag von Jan kann Dich weiter bringen

    das dürfte so etwa dass sei was bei Dir rauskommt ist das Gut ?
    '[GE] = ''abc'', [Sparte] = ''b234y'', [PLZ] = ''2540'', [Debitor-Nr] = ''000'', [MatNr] = ''987'', [Land] = ''CH'''

    wen MatNr eine Zahl ist ist das " " evt. Falsch
    auch bei anderen Zahlen
    und sowas amende bei Land ''' ?
     
    Lanz Rudolf, 9. Februar 2011
    #3
  4. Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server

    Es sieht im Moment so aus, dass die SP scheinbar nicht gestartet wird.
    Ich hab da ne Log-Funktion eingebaut, die mir den übergebenen Parameter in eine Tabelle schreibt und da kommt nix an.
    Auf ACCESS-Seite habe ich mir den ja ausgeben lassen und da ist eben nicht zu erkennen, was da verschluckt wird.
    Ich gehe davon aus, dass es was mit den Hochkommas zu tun hat.
    Bei einer bestimmten Kombination, die im Debug erstmal OK aussieht wird von ACCESS ein Fehelr beim ersten '='-Zeichen angemeckert.
    Es ist scheinbar so, dass die Hochkommas mindestens gedoppelt werden müssen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    cheaptrick, 9. Februar 2011
    #4
  5. Es müssen in allen Fällen Strings übergeben werden, das ist nicht das Problem.
    Würde ich den Parameter so übergeben, wie ich ihn in der SP brauche, funktioniert es nicht, da bricht ACCESS dann schon zusammen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    cheaptrick, 9. Februar 2011
    #5
  6. Was heißt "Access bricht zusammen"? Fehler?

    Wäre es nicht prinzipiell sinnvoller, den Parameter bereits in VBA zu zerlegen und die sp anzupassen?
     
    fraeser, 9. Februar 2011
    #6
  7. natürlich könnte man das machen aber warum eine funktionierende SP ändern, wenn es (hoffentlich) auch anders möglich ist?
    Was ich vergessen habe zu sagen ist das die Anzahl der in dem Parameter übergebenen Werte unterscheidlich ist.
    Ich halte das Problem für ein grundsätzliches, es kann doch eigentlich nur mit den Hochkommas und wie VBA und die SP damit umgehen zu tun haben.

    Warum am Symptom rumwurschteln, wenn es möglich ist, der Ursache auf die Spur zu kommen?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    cheaptrick, 9. Februar 2011
    #7
  8. Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server

    Ja, aber wo tritt denn nun der Fehler auf? Du sagst "Access bricht zusammen"! Fehlermeldung?
    Kannst Du manuell einen String zusammensetzen, mit dem die sp funktioniert? Wie sieht der aus?
     
    fraeser, 9. Februar 2011
    #8
  9. Hallo!

    So wie es aussieht, funktioniert sie ja nicht. *wink.gif*

    Hast du testweise schon einmal versucht, in eine Test-SP zu übergeben, die nur den Parameter-Wert wieder ausgibt.
    Falls in den Variablen keine ' vorkommen, sollte die übergebene String passen.
    Innerhalb der SP werden dann die doppelten '' zu einem einfachen '.

    Code:
    Ist dbs die ADODB-Connection?

    mfg
    Josef
     
    Josef P., 9. Februar 2011
    #9
  10. Ist dbs die ADODB-Connection?

    mfg
    Josef

    Wenn ich die SP direkt auf dem Server starte und mit Parametern versorge funktioniert sie sehr wohl!
    Wie ich schon sagte, es hängt wohl irgendwie mit der Übergabe und hier speziell den Hochkommas zusammen.

    Code:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    cheaptrick, 9. Februar 2011
    #10
  11. Hallo!

    Die SP funktioniert, wenn du den in VBA zusammengesetzten String im MSSQL-Management-Studio startest?

    Code:
    mfg
    Josef
     
    Josef P., 9. Februar 2011
    #11
  12. Die SP funktioniert, wenn ich sie auf dem Server direkt ausführe.
    Dabei muss ich ja die Parameter direkt eintippen.
     
    cheaptrick, 9. Februar 2011
    #12
  13. Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server

    Hallo!

    Wie sieht das aus? Der einzige String-Parameter der SP muss in VBA identisch sein.
    Falls du in der SP mehrere Parameter angeben musst, dann musst du das auch in VBA machen. Nach dem Beispiel aus Beitrag #1 übergibst du nur einen einzigen Parameter.

    mfg
    Josef
     
    Josef P., 9. Februar 2011
    #13
  14. Hallo Josef,

    wenn ich auf dem Server eine SP ausführen will, die Parameter verlangt, dann öffnet sich eine Eingabemaske in die ich den oder die, in meinem Fall ist es ja nur ein Paramerterstring mit u.U. mehreren Werden - halt wie in VBA - eingeben muss.
    Beispiel:
    Code:
    Da bei der Übergabe von VBA an die SP Hochkommas verschluckt werden, muss es hier so aussehen:

    Code:
    Dann kommen die Werte wohl auch so in der SP an.
    Ich hatte dann wohl nach dem Einbau der Log-Funktion (Never change a running program! *Smilie ) ein Problem mit den verschluckten Hochkommas in der SP, da muss im dem Fall wo im String Hochkommas übergeben werden dieses wieder gedoppelt werden, um den Parameterstring sauber wegschreiben zu können.
    (Falls Du Dich darüber wunderst, dass ich die Parameternamen hier nicht in spitzen Klammern, wie benötigt, aufgeschrieben habe, das musste ich machen, weil die Forum-Software dann den ganzen Parameternamen weg geschmissen hat. Wurde wohl falsch interpretiert. *Smilie )

    Jedenfalls habe ich es gerade so lösen können. So irre das im VBA auch aussehen mag aber es kommt dann genau das in der SP an was auch benötigt wird.

    Daher ist das hier jetzt als erledigt einzustufen.
     
    cheaptrick, 9. Februar 2011
    #14
  15. Hallo!

    Mit welchem Programm arbeitest du "auf dem Server"?
    Ich ging davon aus, dass du das Managment-Studio verwendet, in dem du in ein Abfragefenster die gleiche Anweisung eingeben kannst, wie sie in VBA erzeugt wird.

    Das hattest du bereits in Beitrag #1 richtig.

    Wo war jetzt die Fehlerquelle?
    Ich erkenne nämlich keinen Unterschied zur Variante aus Beitrag #1 - ob du die Parameterwerte in eckige, spitze oder gar keine Klammer setzt ist ja egal, da sowieso nur ein String übergeben wird.

    bezüglich doppelte Hochkommas:
    Hier verhält sich T-SQL mit ' wie VBA bei ".
    Beispiel:
    Code:
    => Es wird abc'xyz angezeigt.


    mfg
    Josef
     
    Josef P., 10. Februar 2011
    #15
Thema:

Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server

Die Seite wird geladen...
  1. Parameterübergabe beim aufruf einer Stored Procedure auf SQL-Server - Similar Threads - Parameterübergabe aufruf Stored

  2. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  3. Spalte "Antworten" und "Aufrufe" im Forum vertauscht!

    in Lob, Kritik und Verbesserungsvorschläge
    Spalte "Antworten" und "Aufrufe" im Forum vertauscht!: Hallo ich habe gerade einen Beitrag erstellt, weil ich mich davon täuschen ließ, dass die Beiträge so viele Antworten erhalten hätten, da habe ich aber nicht genau hingeschaut, weil im Forum die...
  4. speichern unter per vba aufrufen

    in Microsoft Excel Hilfe
    speichern unter per vba aufrufen: Hallo zusammen, in meiner Arbeitsmappe ist das Excel Interface ausgeblendet. Da die Datei nur als Vorlage dient, möchte ich über einen Button ins "speichern unter" Menü wechseln, wo sich dann...
  5. Automatisches Starten von Video oder Audio

    in Microsoft PowerPoint Hilfe
    Automatisches Starten von Video oder Audio: Ich habe in einer Präsentation für eine Touchscreen-Präsentation ein Video in einer Folie mit automatischen Start eingebaut. In der Präsentation wird mit Link beliebig oft zu einer Anfangsmaske...
  6. aus Access Word-Makro mit Parameterübergabe starten

    in Microsoft Access Hilfe
    aus Access Word-Makro mit Parameterübergabe starten: Hallo zusammen, ich habe eine Word-Datei, in der aus Access-VBA ein Makro mit einem Parameter gestartet werden soll Meine Word-Datei und das Makro starte ich so, klappt auch:...
  7. Von einem Register ein Formular im zweiten Register aufrufen

    in Microsoft Access Hilfe
    Von einem Register ein Formular im zweiten Register aufrufen: Hallo! Kann mir bitte jemand bei meinem Problem helfen? Ich habe eine Datenbank mit einem Formular frmUebersicht_alle und einem Formular frmEinzeln. Die Formulare habe ich auf zwei...
  8. MS Project - API Aufrufe

    in Sonstiges
    MS Project - API Aufrufe: Hallo, ich hab hier das MS Project von MS Office 16 im Einsatz und muss dort in Zukunft ein paar Sachen pflegen. Im Projektplan gibt es einen für jeden Vorgang einen Hyperlink zu einem Task in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden