MS Access Too Few Parameters Error Help

2001-11-01 Thread Alan Hogue

Hello,

I am trying to execute an update to an Access database. The statement
has two placeholders, and I put two variables between the parentheses in
the execute statement, and yet Access tells me it expects 3 parameters.

This is the prepare:

my $sth_del = $dbh-prepare(
 UPDATE [DBI_TEST]
 SET retired_date = ?
 WHERE person_id = ?) or die Cant prepare retired date:  .
$dbh-errstr;


This is the execute:

foreach my $del_rec (@del_recs) {
 $sth_del-execute( $ret_date, $del_rec ) or die Cant insert retired
date:  . $dbh-errstr;
}


I really don't understand why it wants three parameters. What exactly
does this mean?

Thanks,
Alan



The result I get from a level two trace is:

DBI::db=HASH(0x2278c2c) trace level set to 2 in DBI 1.14-nothread
- prepare for DBD::ODBC::db (DBI::db=HASH(0x2278c68)~0x2278c2c
'UPDATE [DBI
_TEST]
SET retired_date = ?
WHERE person_id = ?')
dbd_preparse scanned 2 distinct placeholders
dbd_st_prepare'd sql f37040784
UPDATE [DBI_TEST]
SET retired_date = ?
WHERE person_id = ?
- prepare= DBI::st=HASH(0x2278ff8) at jcdb_update.pl line 254.
- execute for DBD::ODBC::st (DBI::st=HASH(0x2278ff8)~0x2278f74
'#11/1/2001#
' 22218)
bind 1 == '#11/1/2001#' (attribs: )
bind 1 == '#11/1/2001#' (size 11/12/0, ptype 4, otype 1)
bind 1: CTy=1, STy=VARCHAR, CD=80, Sc=0, VM=11.
bind 2 == '22218' (attribs: )
bind 2 == 22218 (size 5/6/0, ptype 6, otype 1)
bind 2: CTy=1, STy=VARCHAR, CD=80, Sc=0, VM=5.
dbd_st_execute (for sql f37040784 after)...
st_execute/SQLExecute error -1 recorded: [Microsoft][ODBC Microsoft
Access Drive
r] Too few parameters. Expected 3. (SQL-07001)(DBD:
st_execute/SQLExecute err=-1
)



Re: MS Access Too Few Parameters Error Help

2001-11-01 Thread Bart Lateur

On Thu, 01 Nov 2001 11:03:56 -0800, Alan Hogue wrote:

I am trying to execute an update to an Access database. The statement
has two placeholders, and I put two variables between the parentheses in
the execute statement, and yet Access tells me it expects 3 parameters.

This behaviour has had me baffled for a long while, too. It is typical,
as I've mentioned here before, for when you mistyped a field name.

It looks as if Access thinks of unknown field names as parameters, as it
does when you run such a query in Access.

-- 
Bart.