Re: Übergabeproblem cmd.Execute
- From: "Christa Kurschat" <christa_kurschat_nospam@xxxxxx>
- Date: Mon, 21 Aug 2006 13:33:20 +0200
Hallo Rüdiger,
Rüdiger Hausmann <ruediger.hausmann@xxxxxxxxxxxxx> schrieb:
Hallo,
[A2k, SQL-Server 2k]
ich übergeben Daten aus einem Formular und lasse eine SP
ausführen, der code:
Dim strTbl As String
Dim strFld As String
strTbl = "tblMeineTabelle"
strFld = "MeinKommentarFeld"
Dim cmd As New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "EXEC parita.SPKommentare '" &
Me![Kommentar] & "', '" & strTbl & "', '" & strFld & "'," &
Me!PK_Lehrgangsauswertung cmd.Execute
Set cmd = Nothing
Me.Kommentar ist ein ungebundenes Textfeld, die aufgerufene SP
speichert das in ein ntext-Feld. Manchmal, scheinbar zufällig,
erhalte ich aber die Fehlermeldung:
Zeile 1: Falsche Syntax in der Nähe von ','.
wobei dann die Zeile cmd.Execute gelb unterlegt ist.
Merkwürdig ist wie gesagt, daß dieses Verhalten nicht immer
auftrifft, auch wenn der Text der gleiche ist. Wenn ich den
Text ein zweites Mal eingebe, funktioniert es klaglos.
Was kann ich tun?
die SP anders aufrufen.
Du solltest die Parameter gesondert übergeben.
Unten mal ein Beipielcode aus der Hilfe.
Deine Parameter fügst Du analog an, wobei die Reihenfolge eingehalten werden
muß.
BTW: Muß es denn unbedingt ntext sein? Reicht (n)varchar nicht aus?
NText benötigt andere Funktionen zum Schreiben und Aktualisieren.
Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8
--------- Coderstart -------------------------------
Function ExecProc(sp_name As String) As Integer
' sp_name: Name der aufzurufenden Stored Procedure
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim parm As New ADODB.Parameter
Dim ret As Integer
On Error GoTo fehler
Set cn = CurrentProject.Connection
Set cmd.ActiveConnection = cn
cmd.CommandText = sp_name
cmd.CommandType = adCmdStoredProc
' Rückgabewert als Paramter definieren
Set parm = cmd.CreateParameter("Return", adInteger, adParamReturnValue, ,
0)
cmd.Parameters.Append parm
parm.Value = 0
cmd.Execute
ret = cmd.Parameters("Return").Value
' Standardmäßig: Rückgabe 0 bei Erfolg und -1 bei Fehler
ExecProc = ret
If ret < 0 Then GoTo fehler
Set cn = Nothing
Set cmd = Nothing
Set parm = Nothing
Exit Function
fehler:
MsgBox "Fehler beim Aufruf der Prozedur " & sp_name & Chr(13) &
Err.Description
ExecProc = -1
End Function
-----------------
CodeEnd ------------------------------------------------------------
.
- Follow-Ups:
- Re: Übergabeproblem cmd.Execute
- From: Rüdiger Hausmann
- Re: Übergabeproblem cmd.Execute
- References:
- Übergabeproblem cmd.Execute
- From: Rüdiger Hausmann
- Übergabeproblem cmd.Execute
- Prev by Date: Übergabeproblem cmd.Execute
- Next by Date: Re: Übergabeproblem cmd.Execute
- Previous by thread: Übergabeproblem cmd.Execute
- Next by thread: Re: Übergabeproblem cmd.Execute
- Index(es):
Relevant Pages
|
|