Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

A7-OracleDB, Aufruf gespeicherter Prozeduren aus Code/PassThrough -Abfrage

14 views
Skip to first unread message

Dina Gabovitch

unread,
Sep 3, 1998, 3:00:00 AM9/3/98
to
Hallo Leute,
hat jemand schon mal eine gespeicherte Oracle - Prozedur(mit Parameter)
aus einer Abfrage bzw. aus einer Funktion in Access erfolgreich aufgerufen?
Das Recht zum Ausführen dieser Prozedur hat der Benutzer, trotzdem klappt es
nicht.
Es kommt immer der "Call faild" -Fehler , danach manchmal "Falscher
SQL-Befehl"

die Abfrage ist bei mir so: execute prozedurname(param1, param2, ...);
auch bei "update tabelle set feld = 'wert' where schlussel = 'nr';" klappt
es z. B. nicht.

wenn jemand eine Idee hat, bin ich sehr dankbar.
Dina

Andre Goldmann

unread,
Sep 4, 1998, 3:00:00 AM9/4/98
to
On Thu, 3 Sep 1998 23:33:07 +0200, "Dina Gabovitch" <di...@cs.tu-berlin.de>
wrote:

>Hallo Leute,
>hat jemand schon mal eine gespeicherte Oracle - Prozedur(mit Parameter)
>aus einer Abfrage bzw. aus einer Funktion in Access erfolgreich aufgerufen?
>Das Recht zum Ausführen dieser Prozedur hat der Benutzer, trotzdem klappt es
>nicht.
>Es kommt immer der "Call faild" -Fehler , danach manchmal "Falscher
>SQL-Befehl"
>
>die Abfrage ist bei mir so: execute prozedurname(param1, param2, ...);

Na, wenn mir das nicht bekannt vorkommt ...
Aus irgendeinem Grund mochte unser ODBC-Treiber "Execute" nicht, sondern
erwartet statt dessen "Begin" und "End" außenrum.

>auch bei "update tabelle set feld = 'wert' where schlussel = 'nr';" klappt
>es z. B. nicht.

Da muß, glaube ich, das Semikolon am Schluß weg.

Ciao, Andre

<Spendierlaune on>
(Fehlerbehandlung ist rausgekürzt)

------------------ snip --------------------

Public Function Exec_Sql(Sql As String) As Long

Dim qdORA As QueryDef

' Eine gespeicherte Abfrage mit korrektem Connect-String
Set qdORA = CurrentDb.QueryDefs("qd_PassThrough_Generic")
qdORA.Sql = Sql
qdORA.Execute
Set qdORA = Nothing

End Function

'------------------------------------------------------------
' Exec_Proc
'
' Führt eine Stored Procedure aus.
' S enthält den Prozeduraufruf, z.B. "STZ_SUMMEN_DETAIL(122, 9, 1998)"
' Die Prozedur baut das begin..end darum.
'
'------------------------------------------------------------
Public Sub Exec_Proc(S As String)

Dim PlSql As String

PlSql = "Begin " & S & "; End;"
Exec_Sql PlSql

End Sub


Rolf Hefendehl

unread,
Sep 5, 1998, 3:00:00 AM9/5/98
to
Hallo Dina,
ich nutze Execute-Prozeduren auf einem MS SQL-Server. Dies sollte aber
keinen Unterschied machen.
Erfolgreich geht es wenn man SQL Write Through Queries nutzt. Hier gilt
nicht die verkorkste Access SQL-Syntax sondern die standardisierte
SQL-Syntax.
Beispiel:
dim sp as recordset
DoCmd.DeleteObject acQuery, "test1"
Set sp = CurrentDb.CreateQueryDef("test1")
sp.Connect = "ODBC;DATABASE=mpb_pricing;UID=" & UID & ";PWD=" & PWD &
";DSN=FMB_NTD;LOGINTIMEOUT=5;"
sp.SQL = "insert_prices '" & Trim(Me.c_wkn) & "','" & Me.c_currency &
"'," & Str(Me.c_price) & ",'" & _
dbpricedate & "','" & dbreportdate & "','" &
dbrundate & "'," & _
"null,null;"
sp.ReturnsRecords = False
DoCmd.SetWarnings (False)
DoCmd.OpenQuery ("test1")
DoCmd.SetWarnings (True)
sp.Close
Es wird dynamisch eine Query erstellt und ausgeführt. Test1 kann man sich
dann auch in der Entwurfsansicht anschauen.

Grüße,
Rolf Hefendehl

Dina Gabovitch schrieb in Nachricht <6sn221$f57$1...@news.cs.tu-berlin.de>...


>Hallo Leute,
>hat jemand schon mal eine gespeicherte Oracle - Prozedur(mit Parameter)
>aus einer Abfrage bzw. aus einer Funktion in Access erfolgreich aufgerufen?
>Das Recht zum Ausführen dieser Prozedur hat der Benutzer, trotzdem klappt
es
>nicht.
>Es kommt immer der "Call faild" -Fehler , danach manchmal "Falscher
>SQL-Befehl"
>
>die Abfrage ist bei mir so: execute prozedurname(param1, param2, ...);

>auch bei "update tabelle set feld = 'wert' where schlussel = 'nr';" klappt
>es z. B. nicht.
>

Dina Gabovitch

unread,
Sep 9, 1998, 3:00:00 AM9/9/98
to
Hallo, Andre,

vielen Dank für "begin ...;end;"-Tip!!!
Jetzt funktioniert alles bestens.
Bei Abfragen hatte ich zwar komische Sachen beobachtet,
z.B. haben Auswahlabfragen funktioniert, wenn man
für die Verbindung "ODBC;" gespeichert hat und
das Passwort erst beim Aufruf eingegeben hat.
Sobald das Passwort mitabgespeichert war,
gab es Fehlermeldung. )-8
Ich bin dann auf die Idee gekommen, statt DBQ
DATABASE zu schreiben - dann war wieder alles OK. (-8
Jetzt erzeuge ich die Abfragen im Code und es gibt keine
Probleme mehr damit.
Also Danke noch mal und Tschüss

Dina

-----Ursprüngliche Nachricht-----
Von: Andre Goldmann <andre.g...@imbus.de>
Newsgroups: de.comp.datenbanken.ms-access
Datum: Freitag, 4. September 1998 14:35
Betreff: Re: A7-OracleDB, Aufruf gespeicherter Prozeduren aus
Code/PassThrough -Abfrage


>Na, wenn mir das nicht bekannt vorkommt ...
>Aus irgendeinem Grund mochte unser ODBC-Treiber "Execute" nicht, sondern
>erwartet statt dessen "Begin" und "End" außenrum.

......


0 new messages