Jim Lawrence (AccessD)
accessd at shaw.ca
Sat May 22 12:23:17 CDT 2004
Hi Martin:
Pay particular attention to the receiving SP. The numeric types and
percision has to exactly match the receiving variables, names, fields,
strings the exact length or longer and the order of the recieiving variable
has to exactly match. Another problem, that I found and resolved, was to
change all dates to strings.
Eaxample:
<FrontEnd>
...
Set objCmd = New ADODB.Command
With objCmd
.ActiveConnection = globalConnectionString
.CommandText = "SQLSave03"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@chvLast", adVarChar, adParamInput,
40, strLast)
.Parameters.Append .CreateParameter("@chvFirst", adVarChar, adParamInput,
30, strFirst)
.Parameters.Append .CreateParameter("@chvMiddle", adVarChar, adParamInput,
30, strMiddle)
.Parameters.Append .CreateParameter("@chvBirthDate", adVarChar,
adParamInput, 11, strBirthDate)
.Parameters.Append .CreateParameter("@chvRangeDate", adVarChar,
adParamInput, 11, strRangeDate)
.Parameters.Append .CreateParameter("@intRecordCount", adInteger,
adParamOutput)
...
End With
...
' Number of records changed: @intRecordCount
If objCmd(1) > 0 then
...
</FrontEnd>
<BackEnd>
CREATE PROC dbo.SQLSave03
@chvLast varchar(40),
@chvFirst varchar(30),
@chvMiddle varchar(30),
@chvBirthDate varchar(11),
@chvRangeDate varchar(11),
@intRecordCount INT OUTPUT
AS
...
</BackEnd>
You can always use an 'INSERT' sql string like:
<FrontEnd>
...
Dim strSQL As String
Dim objConn As ADODB.Connection
Set objConn = New ADODB.Connection
objConn.Open globalConnectionString
objConn.BeginTrans
'Note:
'1. That MyRecord is just a 'type' structure that matches a specific record
from a specific form.
'2. Single quotes around all strings including dates.
With MyRecord
strSQL = "INSERT " & _
"INTO AlsoKnowAs " & _
(Counter, EMPNUM, NAME, RECORD_DATE) " & _
"VALUES" & _
(" & lngCounter & ", " & glEmployeeNumber & ", '" & .AKANAME & _
"', '" & .AKARECORD_DATE & "')"
End With
objConn.Execute strSQL
objConn.CommitTrans
...
</FrontEnd>
That is about all for now and I hope it helps.
Jim
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Martin Reid
Sent: Saturday, May 22, 2004 7:56 AM
To: Access Developers discussion and problem solving
Subject: [AccessD] ADO Parameters - Driving me nuts
ADO Parameters being passed to an Insert Stored Procedure
Keeps falling over with a Precision not valid message
I reworte putting in the Numberic Scale and the Precision values before
appending the param and it still fails.
Any advice more than welcome.
There are approx 40 parameters being passed. Mosst of the are Advarchar with
about 5 being Ints. This isidriving me nuts.
Martin
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com