SP über ADODB ausführen - INSERT varchar funktioniert nicht

10/06/2009 - 16:55 von Andreas Jändl | Report spam
Hallo NG,

ich habe ein MSSQL2k/A2k-Projekt. Ich will von der adp aus eine SP
ausführen, die die übergebenen Parameter in eine Tabelle einfügt. Das
funktioniert alles, bis auf den Parameter "Bemerkung", der wird nicht mit
eingefügt. Es kommt keine Fehlermeldung, der INSERT wird ausgeführt, und
alle Werte sind richtig in die Tabelle eingetragen, nur die Bemerkung nicht.

Unten habe ich den Aufruf und die SP aufgeführt.

Vielen Dank im voraus und herzliche Grüße,

Andreas

Set cmd = New ADODB.Command
With cmd
.CommandType = adCmdStoredProc
.CommandText = strSp
.Parameters.Append .CreateParameter("idTakopf", adInteger,
adParamInput, , frm.Controls!Id_Takopf)
.Parameters.Append .CreateParameter("idWG", adInteger, adParamInput,
, frm.Controls!kf_Warengru)
.Parameters.Append .CreateParameter("datPeilung", adDBTimeStamp,
adParamInput, , frm.Controls!DatZeit_Peilung)
.Parameters.Append .CreateParameter("datPeilungBB", adDBTimeStamp,
adParamInput, , frm.Controls!DatZeit_Peilung_BB)
.Parameters.Append .CreateParameter("LTank", adCurrency,
adParamInput, , frm.Controls!L_Tank)
.Parameters.Append .CreateParameter("celsius", adCurrency,
adParamInput, , frm.Controls!Celsius)
.Parameters.Append .CreateParameter("NrTank", adInteger,
adParamInput, , frm.Controls!Nr_Tank)
.Parameters.Append .CreateParameter("MMTank", adCurrency,
adParamInput, , frm.Controls!MM_Tank)
.Parameters.Append .CreateParameter("MMWasser", adCurrency,
adParamInput, , frm.Controls!MM_Wasser)
.Parameters.Append .CreateParameter("Satz", adInteger, adParamInput,
, 7)
If strDatPeilung = strDatKopf_Ausl Then
.Parameters.Append .CreateParameter("Anfangende", adInteger,
adParamInput, , 1)
Else
.Parameters.Append .CreateParameter("Anfangende", adInteger,
adParamInput, , 0)
End If
.Parameters.Append .CreateParameter("Bemerkung", adVarChar,
adParamInput, 50, frm.Controls!Bemerkung)
.Parameters.Append .CreateParameter("New_Id", adInteger,
adParamOutput, 0)
'.Parameters.Append .CreateParameter("@RETURN_VALUE", adInteger,
adParamReturnValue, 0)
Set .ActiveConnection = cnn
.Execute Options:=adExecuteNoRecords
lngIdPeilung = .Parameters("New_Id")
End With




ALTER PROCEDURE [dbo].[MySP]

@lngTAkopf int,

@lngWG int,

@Datzeit_Peilung datetime,

@DAtzeit_Peilung_BB datetime,

@curL_TAnk money,

@celsius money,

@Nr_Tank int,

@MM_Tank int,

@MM_WAsser int,

@lngSatzart int,

@AnfangEnde int,

@Bemerkung char (50),

@new_id int OUTPUT

AS

BEGIN

DECLARE @rc int

declare @AnfEnd char (1)

select @rc = 0

if @anfangende = 1

Select @anfend = 'E'

else

Select @anfend = ''


BEGIN TRANSACTION SaveRecord


INSERT INTO dbo.s_dat_TaPeilung (Id_TAkopf, Id_Warengru, Datzeit_Peilung,
DAtzeit_Peilung_BB,L_TAnk, Celsius, Nr_Tank,

MM_Tank, MM_WAsser, Id_Satzart, AnfangEnde, Bemerkung)

Values (@lngTAkopf ,

@lngWG ,

@Datzeit_Peilung ,

@DAtzeit_Peilung_BB ,

@curL_TAnk ,

@celsius ,

@Nr_Tank ,

@MM_Tank ,

@MM_WAsser ,

@lngSatzart ,

@AnfEnd,

@Bemerkung)

if (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION SaveRecord

select @rc = @@Error

Goto OnExit

END

select @new_id = @@identity

COMMIT TRANSACTION SaveRecord


OnExit:

RETURN @rc

END
 

Lesen sie die antworten

#1 Philipp Stiefel
10/06/2009 - 17:35 | Warnen spam
Andreas Jàndl schrieb:

ich habe ein MSSQL2k/A2k-Projekt. Ich will von der adp aus eine SP
ausführen, die die übergebenen Parameter in eine Tabelle einfügt. Das
funktioniert alles, bis auf den Parameter "Bemerkung", der wird nicht mit
eingefügt. Es kommt keine Fehlermeldung, der INSERT wird ausgeführt, und
alle Werte sind richtig in die Tabelle eingetragen, nur die Bemerkung nicht.



Was bei deinem Code auffàllt, ist das der Parameter "Bemerkung" im
ADO-Aufruf als Varchar deklariert wird, aber in der Definition der
Stored Proc ein Char ist.

Wenn das nicht zur Lösung führt, solltest du prüfen (VBA debuggen)
ob der Wert für den Parameter "Bemerkung" überhaupt bei dem ADO-
Command ankommt, oder evtl. schon vorher nicht aus dem Form
abgerufen werden kann.

Gruß
Phil

Ähnliche fragen