Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: TomTom2903 am Mai 22, 2013, 16:08:47

Titel: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: TomTom2903 am Mai 22, 2013, 16:08:47
Hallo,
ich möchte eine gespeicherte Prozedur auf dem SQL Server ausführen. Diese funktioniert auch auf dem SQL Server.

Der Code ist
Function DaoPassThroughExecute()
    Dim db As DAO.Database
    Dim qd As DAO.QueryDef
    Dim strSqlExpr As String
    Dim strConnection As Variant

    Set db = CurrentDb
    Set qd = db.CreateQueryDef("")
    ' als Pass-Through

    strSqlExpr = "EXEC dbo.SP_NewTabelle"
    strConnection = "[odbc;DSN=VIS_V10]"
   
    With qd
        .Connect = strConnection
        .ReturnsRecords = False
        .SQL = strSqlExpr
    End With
    ' Pass-Through ausführen
    qd.Execute dbSQLPassThrough

    Set qd = Nothing
    Set db = Nothing
End Function


Nach dem Ausführen bekomme ich den Laufzeitfehler 3305: Ungültige Verbindungszeichenfolge in Pass-Through-Abfrage.

Was mache ich falsch? Mache jetzt schon den ganzen Tag damit rum und langsam verzweifel ich.

Bin dankbar für jeden Tipp oder Lösungsvorschlag!
Gruß
Tom
Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: 69bruno am Mai 22, 2013, 16:27:49
Und das heißt auch NewTabelle,

nicht NewTable
oder
NeueTabelle ????

Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.
Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: TomTom2903 am Mai 22, 2013, 16:39:33
Zitat von: 69bruno am Mai 22, 2013, 16:27:49
Und das heißt auch NewTabelle,

nicht NewTable
oder
NeueTabelle ????

Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.

Ja, NewTabelle :-) Zu Testzwecken -> Quick and dirty. Wird geändert wenn es läuft
Probier ich morgen gleich aus. Hoffe das klappt...
Thx
Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: TomTom2903 am Mai 22, 2013, 16:52:33
Zitat von: 69bruno am Mai 22, 2013, 16:27:49
Aber egal, anderes Forum sagt, sobald Du es nicht mehr als Passthrough ausführen willst, also auf dem lokalen Rechner, musst Du returnsrecords auf true setzen.

Ergänzung: Also ich möchte die Prozedur schon auf dem SQL Server ausführen und nicht bei mir auf dem Rechner. Die gespeicherte Prozedur erstellt eine neue Tabelle auf dem SQL Server.
Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: TomTom2903 am Mai 23, 2013, 08:57:33
Immer noch der gleiche Fehler...
Hat jmd ne Idee?
Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: Wurliwurm am Mai 23, 2013, 09:54:36
Zitat von: TomTom2903 am Mai 22, 2013, 16:08:47strSqlExpr = "EXEC dbo.SP_NewTabelle"
    strConnection = "[odbc;DSN=VIS_V10]"

Mich macht das odbc stutzig. Eine stored procedure läuft in der Datenbankinstanz auf dem Server und obdc ist ein Protokoll zur Verbindung zwischen Datenbank und Client-Rechner.






Titel: Re: Gespeicherte Prozedur auf SQL Server ausführen
Beitrag von: TomTom2903 am Mai 23, 2013, 10:36:51
so hab es hinbekommen.
Code:
Function DaoPassThroughExecute()
    Dim qd As DAO.QueryDef
    Set qd = CurrentDb.QueryDefs("Abfrage1")
    'Verbindung Pass-Through zu SQL-Server
    qd.Connect = "ODBC;DSN=VIS_V10" ';DATABASE=VIS_V10;Trusted_Connection=YES"
    'Gitb Pass-Through Rückgabewert
    qd.ReturnsRecords = False
    'Pass-Through ausführen
    DoCmd.OpenQuery "Abfrage1"

    Set qd = Nothing
End Function


Auf dem SQL Server mussten nachdem die Abfrage läuft noch die Berechtigungen angepasst werden.

Thx @all!
Grüße
Tom