Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Gespeicherte Prozedur auf SQL Server ausführen

Begonnen von TomTom2903, Mai 22, 2013, 16:08:47

⏪ vorheriges - nächstes ⏩

TomTom2903

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

69bruno

#1
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.
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

TomTom2903

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

TomTom2903

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.

TomTom2903

Immer noch der gleiche Fehler...
Hat jmd ne Idee?

Wurliwurm

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.







TomTom2903

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