Scenario:

I am using the following code to update an Access database.  The fields 
case_notes1...case_notes4 are MEMO fields.  Sometimes, I have no 
problem whatsoever.  Other times, I get the following error:

DBD::ODBC::st execute failed: [Microsoft][ODBC Microsoft Access 
Driver]Invalid precision value  (SQL-S1104)(DBD: 
_rebind_ph/SQLBindParameter err=-1) at c:/i-networks/soar/cgi-
bin/collab_gatekeepers_channel_open.pl line 930.

The code:

    my $dbh = DBI->connect("dbi:ODBC:gatekeepers") || die DBI::errstr;
    my $sth = $dbh->prepare("UPDATE gatekeepers
                                 SET caller_last_name=?, caller_first_name=?, 
caller_phone_areacode=?,
                                     caller_phone_prefix=?, 
caller_phone_suffix=?, caller_anonymous=?, referral_source=?,
                                     referral_source_other=?, caller_callback=?, 
client_first_name=?, client_last_name=?,
                                     client_soc_security=?, client_address=?, 
client_city=?, client_state=?,
                                     client_zipcode=?, client_zipfour=?, 
client_phone_areacode=?, client_phone_prefix=?,
                                     client_phone_suffix=?, client_gender=?, 
client_age=?, client_race=?,
                                     composition=?, composition_other=?, 
referral_reasons=?, directions=?,
                                     outcomes_mental_health_agency=?, 
outcomes_crisis_services=?, outcomes_senior_ir=?,
                                     
outcomes_home_and_community_services=?, 
outcomes_home_health_agency=?, 
outcomes_adult_protective_services=?,
                                     outcomes_medical_facility=?, 
outcomes_medical_services=?, 
outcomes_involuntary_psychiatric_hospital=?,
                                     outcomes_voluntary_psychiatric_hospital=?, 
outcomes_detoxification_facility=?, outcomes_law_enforcement=?,
                                     outcomes_other1=?, outcomes_other2=?, 
outcomes_other3=?, outcomes_other4=?,
                                     refused_face_to_face=?, 
refused_recommended_services=?, refused_will_return=?, 
unable_to_contact=?,
                                     refusal_comments=?, 
other_actions_comments=?, caregiver_stress=?, condition_of_home=?,
                                     economic_problems=?, 
medication_problems=?, mental_health=?, nutrition=?,
                                     personal_appearance=?, 
personality_changes=?, physical_health=?, physical_losses=?,
                                     social_isolation=?, substance_abuse=?, 
reason_other1=?, reason_other2=?,
                                     case_notes1=?, case_notes2=?, 
case_notes3=?, case_notes4=?,
                                     last_update_date=?, last_update_name=?
                                WHERE sid   = ?
                           ") || die DBI::errstr;

    $sth->execute(
    $in{'caller_last_name'}, $in{'caller_first_name'},
    $in{'caller_phone_areacode'}, 
$in{'caller_phone_prefix'},$in{'caller_phone_suffix'},
    $in{'caller_anonymous'}, $in{'referral_source'}, 
$in{'referral_source_other'},
    $in{'caller_callback'}, $in{'client_first_name'}, $in{'client_last_name'},
    $in{'client_soc_security'}, $in{'client_address'}, $in{'client_city'},
    $in{'client_state'}, $in{'client_zipcode'}, $in{'client_zipfour'},
    $in{'client_phone_areacode'}, $in{'client_phone_prefix'}, 
$in{'client_phone_suffix'},
    $in{'client_gender'}, $in{'client_age'}, $in{'client_race'},
    $in{'composition'}, $in{'composition_other'}, $in{'referral_reasons'},
    $in{'directions'}, $in{'outcomes_mental_health_agency'}, 
$in{'outcomes_crisis_services'},
    $in{'outcomes_senior_ir'}, 
$in{'outcomes_home_and_community_services'}, 
$in{'outcomes_home_health_agency'},
    $in{'outcomes_adult_protective_services'}, 
$in{'outcomes_medical_facility'}, $in{'outcomes_medical_services'},
    $in{'outcomes_involuntary_psychiatric_hospital'}, 
$in{'outcomes_voluntary_psychiatric_hospital'},$in{'outcomes_detoxific
ation_facility'},
    $in{'outcomes_law_enforcement'}, $in{'outcomes_other1'}, 
$in{'outcomes_other2'}, $in{'outcomes_other3'},
    $in{'outcomes_other4'}, $in{'refused_face_to_face'}, 
$in{'refused_recommended_services'}, $in{'refused_will_return'},
    $in{'unable_to_contact'}, $in{'refusal_comments'}, 
$in{'other_actions_comments'},
    $in{'caregiver_stress'}, $in{'condition_of_home'}, 
$in{'economic_problems'}, $in{'medication_problems'},
    $in{'mental_health'}, $in{'nutrition'}, $in{'personal_appearance'}, 
$in{'personality_changes'},
    $in{'physical_health'}, $in{'physical_losses'}, $in{'social_isolation'}, 
$in{'substance_abuse'},
    $in{'reason_other1'}, $in{'reason_other2'}, $in{'case_notes1'}, 
$in{'case_notes2'},
    $in{'case_notes3'}, $in{'case_notes4'}, $now_date, $new_specialist, 
$in{'sid'});

    $dbh->disconnect();

Any ideas?  So far, I have tried enclosing the wildcard variables in the 
execute() statement in quotes, but that hasn't seemed to work as well 
as I expected.

Thanks in advance

Brad Smith

Reply via email to