Re: Übergabeproblem cmd.Execute



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 ------------------------------------------------------------


.



Relevant Pages

  • SQL
    ... Dim rs5 As DAO.Recordset ... Dim master as string, an as string, wg as string, FSkopf ... 'Erreichbarkeit der automatischen An-Empfänger (Email, ... Set rs5 = CurrentDb.OpenRecordset("SELECT ...
    (microsoft.public.de.access)
  • SQL
    ... Dim rs5 As DAO.Recordset ... Dim master as string, an as string, wg as string, FSkopf ... 'Erreichbarkeit der automatischen An-Empfänger (Email, ... Set rs5 = CurrentDb.OpenRecordset("SELECT ...
    (microsoft.public.de.access)
  • =?iso-8859-1?q?Re:_"Ausf=FChren_als"_in_C#_programmieren_(L=F6sung_f=FCr_.NET_V2.0)?=
    ... string Arguments = this.txtArguments.Text.Trim; ... ProcessStartInfo MyInfo = new ProcessStartInfo; ... // Set arguments with the filename: ... // Set username and domain of new start account: ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: Wert aus Collection an Formular weitergeben
    ... Dim Table As String ... End Select ... Set dbCurr = CurrentDb ...
    (microsoft.public.de.access)
  • Re: Grafiken einbinden
    ... Public Const cPicOrd0 As String = "PicPrg" ... Dim strNameCtrPic As String ... If rs.EOF = False And rs.RecordCount 0 Then ... Set frmRecSet = Me ...
    (microsoft.public.de.access)