More BLOB problems
Posted: Mon 13 Jun 2005 13:02
The third time I try to call this, I get the following error
Project BBSConvertTransfer.exe raised exception class EAssertionFailed with message 'Assertion failure [D:\Projects\delphi\Dac\Source\MemData.pas. line 6307'. .....
The ODAC setup for the BLOB is bolded below. The BLOBs are binar files containing fingerprint images and are about 600K each in size.
try
{
OraStoredProc->Close();
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_1"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 0);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_2"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 1);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_3"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 2);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_4"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 3);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_5"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 4);
OraStoredProc->Params->ParamValues["V_ALIEN_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0).SubString(2,9);
OraStoredProc->Params->ParamValues["V_ASC_MACHINE_ID"] = TMainForm::GetValueForCode(AnsiString("2.905"), 0);
OraStoredProc->Params->ParamValues["V_ASC_QC_ID"] = TMainForm::GetValueForCode(AnsiString("2.919"), 0);
//OraStoredProc->Params->ParamValues["V_ASC_SITE_ID"] = TMainForm::GetValueForCode(AnsiString("2.916"), 0);
OraStoredProc->Params->ParamValues["V_ASC_USER_ID"] = TMainForm::GetValueForCode(AnsiString("2.906"), 0);
OraStoredProc->Params->ParamValues["V_CITY"] = TMainForm::GetValueForCode(AnsiString("2.911"), 0);
OraStoredProc->Params->ParamValues["V_CITZ_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_CTZ"), 0);
OraStoredProc->Params->ParamValues["V_DOB_DT_1"] = TMainForm::GetValueForCode(AnsiString("T2_DOB"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_DAI"] = TMainForm::GetValueForCode(AnsiString("T1_DAI"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TCN"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TCR"] = TMainForm::GetValueForCode(AnsiString("T1_TCR"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TSN"] = TMainForm::GetValueForCode(AnsiString("2.904"), 0);
OraStoredProc->Params->ParamValues["V_EXT_SYS"] = TMainForm::GetValueForCode(AnsiString("2.902"), 0);
OraStoredProc->Params->ParamValues["V_EXT_SYS_ID"] = TMainForm::GetValueForCode(AnsiString("2.903"), 0);
OraStoredProc->Params->ParamValues["V_EYE_COLOR_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_EYE"), 0);
OraStoredProc->Params->ParamValues["V_FBI_NAME"] = TMainForm::GetValueForCode(AnsiString("T2_NAM"), 0);
OraStoredProc->Params->ParamValues["V_FBI_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_FBI"), 0);
OraStoredProc->Params->ParamValues["V_FBI_TCN"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0);
AnsiString as103 = TMainForm::GetValueForCode(AnsiString("1.03"), 0);
for (int i=10 ; i Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "Y";
else
OraStoredProc->Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "N";
}
for (int i=1 ; i Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "Y";
else
OraStoredProc->Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "N";
}
OraStoredProc->Params->ParamValues["V_FIRST_NAME"] = TMainForm::GetValueForCode(AnsiString("2.908"), 0);
AnsiString asFPSentDateProc = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0).SubString(11,8);
OraStoredProc->Params->ParamValues["V_FP_SENT_DT"] = asFPSentDateProc.SubString(5,2) + "/" +
asFPSentDateProc.SubString(7,2) + "/" +
asFPSentDateProc.SubString(1,4);
OraStoredProc->Params->ParamValues["V_FP_TAKEN_DT"] = TMainForm::GetValueForCode(AnsiString("T2_DPR"), 0);
OraStoredProc->Params->ParamValues["V_GENDER_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_SEX"), 0);
OraStoredProc->Params->ParamValues["V_HAIR_COLOR_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_HAI"), 0);
OraStoredProc->Params->ParamValues["V_HEIGHT"] = TMainForm::GetValueForCode(AnsiString("T2_HGT"), 0);
OraStoredProc->Params->ParamValues["V_LAST_NAME"] = TMainForm::GetValueForCode(AnsiString("2.907"), 0);
OraStoredProc->Params->ParamValues["V_LOCAL_ORI_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_ORI"), 0);
OraStoredProc->Params->ParamValues["V_MIDDLE_NAME"] = TMainForm::GetValueForCode(AnsiString("2.909"), 0);
OraStoredProc->Params->ParamValues["V_MIL_NBR"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_MNU_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_MNU"), 1);
OraStoredProc->Params->ParamValues["V_OCA_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_OCA"), 0);
OraStoredProc->Params->ParamValues["V_POB_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_POB"), 0);
OraStoredProc->Params->ParamValues["V_RACE_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_RAC"), 0);
OraStoredProc->Params->ParamValues["V_REASON_FP_FORM"] = TMainForm::GetValueForCode(AnsiString("T2_RFP"), 0);
TDateTime copyTimeProc = globalDateTime->CurrentDateTime();
AnsiString asUniqueDateProc = copyTimeProc.FormatString("mm/dd/yyyy");
OraStoredProc->Params->ParamValues["V_RECEIVED_DATE"] = asUniqueDateProc;
OraStoredProc->Params->ParamValues["V_RECV_DT"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_REGIONAL_ORI_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_DAI"), 0);
OraStoredProc->Params->ParamValues["V_REJECT_DATA"] = TMainForm::GetValueForCode(AnsiString("T2_MSG"), 0);
OraStoredProc->Params->ParamValues["V_RESPONSE_TIME"] = 0.0; //TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_SCAN_TYPE"] = TMainForm::GetValueForCode(AnsiString("2.904"), 0).SubString(7,1);
OraStoredProc->Params->ParamValues["V_SEARCH_RESULT"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_SENT_TO_FBI_FLAG"] = "Y";
OraStoredProc->Params->ParamValues["V_SSN_1"] = TMainForm::GetValueForCode(AnsiString("T2_SOC"), 0);
OraStoredProc->Params->ParamValues["V_STATE_CODE"] = TMainForm::GetValueForCode(AnsiString("2.912"), 0);
OraStoredProc->Params->ParamValues["V_STREET"] = TMainForm::GetValueForCode(AnsiString("2.910"), 0);
OraStoredProc->Params->ParamValues["V_SUBMIT_COUNT"] = "1";
OraStoredProc->Params->ParamValues["V_WEIGHT"] = StrToInt(TMainForm::GetValueForCode(AnsiString("T2_WGT"), 0));
OraStoredProc->Params->ParamValues["V_ZIP_CODE"] = TMainForm::GetValueForCode(AnsiString("2.913"), 0);
TOraLob *vBLOB = new TOraLob(OraSession->OCISvcCtx);
vBLOB->CreateTemporary(ltBlob);
vBLOB->LoadFromFile(asrFile);
vBLOB->WriteLob();
OraStoredProc->ParamByName("V_EFTS")->AsOraBlob = vBLOB;
OraStoredProc->Prepare();
if (OraStoredProc->Prepared == true)
OraStoredProc->ExecProc();
delete vBLOB; }
catch(...)
{
StatusMemo->Lines->Add("Stored procedure failed!");
}
Project BBSConvertTransfer.exe raised exception class EAssertionFailed with message 'Assertion failure [D:\Projects\delphi\Dac\Source\MemData.pas. line 6307'. .....
The ODAC setup for the BLOB is bolded below. The BLOBs are binar files containing fingerprint images and are about 600K each in size.
try
{
OraStoredProc->Close();
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_1"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 0);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_2"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 1);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_3"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 2);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_4"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 3);
OraStoredProc->Params->ParamValues["V_ALIAS_NAME_5"] = TMainForm::GetValueForCode(AnsiString("T2_AKA"), 4);
OraStoredProc->Params->ParamValues["V_ALIEN_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0).SubString(2,9);
OraStoredProc->Params->ParamValues["V_ASC_MACHINE_ID"] = TMainForm::GetValueForCode(AnsiString("2.905"), 0);
OraStoredProc->Params->ParamValues["V_ASC_QC_ID"] = TMainForm::GetValueForCode(AnsiString("2.919"), 0);
//OraStoredProc->Params->ParamValues["V_ASC_SITE_ID"] = TMainForm::GetValueForCode(AnsiString("2.916"), 0);
OraStoredProc->Params->ParamValues["V_ASC_USER_ID"] = TMainForm::GetValueForCode(AnsiString("2.906"), 0);
OraStoredProc->Params->ParamValues["V_CITY"] = TMainForm::GetValueForCode(AnsiString("2.911"), 0);
OraStoredProc->Params->ParamValues["V_CITZ_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_CTZ"), 0);
OraStoredProc->Params->ParamValues["V_DOB_DT_1"] = TMainForm::GetValueForCode(AnsiString("T2_DOB"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_DAI"] = TMainForm::GetValueForCode(AnsiString("T1_DAI"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TCN"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TCR"] = TMainForm::GetValueForCode(AnsiString("T1_TCR"), 0);
OraStoredProc->Params->ParamValues["V_EFIPS_TSN"] = TMainForm::GetValueForCode(AnsiString("2.904"), 0);
OraStoredProc->Params->ParamValues["V_EXT_SYS"] = TMainForm::GetValueForCode(AnsiString("2.902"), 0);
OraStoredProc->Params->ParamValues["V_EXT_SYS_ID"] = TMainForm::GetValueForCode(AnsiString("2.903"), 0);
OraStoredProc->Params->ParamValues["V_EYE_COLOR_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_EYE"), 0);
OraStoredProc->Params->ParamValues["V_FBI_NAME"] = TMainForm::GetValueForCode(AnsiString("T2_NAM"), 0);
OraStoredProc->Params->ParamValues["V_FBI_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_FBI"), 0);
OraStoredProc->Params->ParamValues["V_FBI_TCN"] = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0);
AnsiString as103 = TMainForm::GetValueForCode(AnsiString("1.03"), 0);
for (int i=10 ; i Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "Y";
else
OraStoredProc->Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "N";
}
for (int i=1 ; i Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "Y";
else
OraStoredProc->Params->ParamValues["V_FINGERPRINT" + IntToStr(i) + "_STATUS"] = "N";
}
OraStoredProc->Params->ParamValues["V_FIRST_NAME"] = TMainForm::GetValueForCode(AnsiString("2.908"), 0);
AnsiString asFPSentDateProc = TMainForm::GetValueForCode(AnsiString("T1_TCN"), 0).SubString(11,8);
OraStoredProc->Params->ParamValues["V_FP_SENT_DT"] = asFPSentDateProc.SubString(5,2) + "/" +
asFPSentDateProc.SubString(7,2) + "/" +
asFPSentDateProc.SubString(1,4);
OraStoredProc->Params->ParamValues["V_FP_TAKEN_DT"] = TMainForm::GetValueForCode(AnsiString("T2_DPR"), 0);
OraStoredProc->Params->ParamValues["V_GENDER_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_SEX"), 0);
OraStoredProc->Params->ParamValues["V_HAIR_COLOR_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_HAI"), 0);
OraStoredProc->Params->ParamValues["V_HEIGHT"] = TMainForm::GetValueForCode(AnsiString("T2_HGT"), 0);
OraStoredProc->Params->ParamValues["V_LAST_NAME"] = TMainForm::GetValueForCode(AnsiString("2.907"), 0);
OraStoredProc->Params->ParamValues["V_LOCAL_ORI_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_ORI"), 0);
OraStoredProc->Params->ParamValues["V_MIDDLE_NAME"] = TMainForm::GetValueForCode(AnsiString("2.909"), 0);
OraStoredProc->Params->ParamValues["V_MIL_NBR"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_MNU_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_MNU"), 1);
OraStoredProc->Params->ParamValues["V_OCA_NBR"] = TMainForm::GetValueForCode(AnsiString("T2_OCA"), 0);
OraStoredProc->Params->ParamValues["V_POB_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_POB"), 0);
OraStoredProc->Params->ParamValues["V_RACE_CODE"] = TMainForm::GetValueForCode(AnsiString("T2_RAC"), 0);
OraStoredProc->Params->ParamValues["V_REASON_FP_FORM"] = TMainForm::GetValueForCode(AnsiString("T2_RFP"), 0);
TDateTime copyTimeProc = globalDateTime->CurrentDateTime();
AnsiString asUniqueDateProc = copyTimeProc.FormatString("mm/dd/yyyy");
OraStoredProc->Params->ParamValues["V_RECEIVED_DATE"] = asUniqueDateProc;
OraStoredProc->Params->ParamValues["V_RECV_DT"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_REGIONAL_ORI_NBR"] = TMainForm::GetValueForCode(AnsiString("T1_DAI"), 0);
OraStoredProc->Params->ParamValues["V_REJECT_DATA"] = TMainForm::GetValueForCode(AnsiString("T2_MSG"), 0);
OraStoredProc->Params->ParamValues["V_RESPONSE_TIME"] = 0.0; //TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_SCAN_TYPE"] = TMainForm::GetValueForCode(AnsiString("2.904"), 0).SubString(7,1);
OraStoredProc->Params->ParamValues["V_SEARCH_RESULT"] = TMainForm::GetValueForCode(AnsiString(""), 0);
OraStoredProc->Params->ParamValues["V_SENT_TO_FBI_FLAG"] = "Y";
OraStoredProc->Params->ParamValues["V_SSN_1"] = TMainForm::GetValueForCode(AnsiString("T2_SOC"), 0);
OraStoredProc->Params->ParamValues["V_STATE_CODE"] = TMainForm::GetValueForCode(AnsiString("2.912"), 0);
OraStoredProc->Params->ParamValues["V_STREET"] = TMainForm::GetValueForCode(AnsiString("2.910"), 0);
OraStoredProc->Params->ParamValues["V_SUBMIT_COUNT"] = "1";
OraStoredProc->Params->ParamValues["V_WEIGHT"] = StrToInt(TMainForm::GetValueForCode(AnsiString("T2_WGT"), 0));
OraStoredProc->Params->ParamValues["V_ZIP_CODE"] = TMainForm::GetValueForCode(AnsiString("2.913"), 0);
TOraLob *vBLOB = new TOraLob(OraSession->OCISvcCtx);
vBLOB->CreateTemporary(ltBlob);
vBLOB->LoadFromFile(asrFile);
vBLOB->WriteLob();
OraStoredProc->ParamByName("V_EFTS")->AsOraBlob = vBLOB;
OraStoredProc->Prepare();
if (OraStoredProc->Prepared == true)
OraStoredProc->ExecProc();
delete vBLOB; }
catch(...)
{
StatusMemo->Lines->Add("Stored procedure failed!");
}