[AccessD] ADO Parameters - Driving me nuts

Martin Reid mwp.reid at qub.ac.uk
Sat May 22 13:05:14 CDT 2004


Thanks Jim

Wil try it out now.


Martin




----- Original Message ----- 
From: "Jim Lawrence (AccessD)" <accessd at shaw.ca>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Saturday, May 22, 2004 6:23 PM
Subject: RE: [AccessD] ADO Parameters - Driving me nuts


> 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
>
> -- 
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>




More information about the AccessD mailing list