the following code worked on vb6. I believe the problem is in the conversion of the date. I have a stored procedure written in oracle that accepts a date. It is defined as a date. In vb6 i used the following code to call the procedure and it worked fine.
con.ConnectionString = "Provider=MSDAORA;Data Source=PPRD;User Id=imaging;Password=imagin
g;"
con.Open
con.CursorLocation = adUseNone
With cmd
.ActiveConnection = con
.CommandText = "DBO.P_PROCESS_DOC_IMAGE_R
EQUEST"
.CommandType = adCmdStoredProc
Set param = .CreateParameter("Piv_Exte
rnalImageI
d", adVarChar, adParamInput, 18) 'object id
.Parameters.Append param
Set param = .CreateParameter("Piv_Exte
rnalImageN
ame", adVarChar, adParamInput, 25) 'object name
.Parameters.Append param
Set param = .CreateParameter("Piv_Prim
aryIdentif
ierType", adChar, adParamInput, 1)
.Parameters.Append param
Set param = .CreateParameter("Piv_Prim
aryIdentif
ier", adVarChar, adParamInput, 9)
.Parameters.Append param
Set param = .CreateParameter("Piv_DocT
ypeCode", adVarChar, adParamInput, 4) 'doc type
.Parameters.Append param
Set param = .CreateParameter("Piv_Work
flowInstan
ceId", adVarChar, adParamInput, 10)
.Parameters.Append param
Set param = .CreateParameter("Pid_Scan
Date", adDate, adParamInput, 200) 'scan date
.Parameters.Append param
Set param = .CreateParameter("Pio_rtn_
code", adVarChar, adParamOutput, 20)
.Parameters.Append param
Set param = .CreateParameter("Pio_rtn_
text", adVarChar, adParamOutput, 200)
.Parameters.Append param
End With
the Pid_ScanDate param was filled as follows :
yyyy = Mid(lCALformfield.Value, 1, 4)
mm = Mid(lCALformfield.Value, 5, 2)
dd = Mid(lCALformfield.Value, 7, 2)
cmd("Pid_ScanDate") = CDate(mm & "/" & dd & "/" & yyyy)
this code works find.
Then i converted to vb.net. Code to follow
con.ConnectionString = "Provider= OraOLEDB.Oracle;Data Source=PINT;User Id=imaging;Password=imagin
g;"
con.Open()
con.CursorLocation = ADODB.CursorLocationEnum.a
dUseNone
With cmd
.let_ActiveConnection(con)
.CommandText = "DBO.P_PROCESS_DOC_IMAGE_R
EQUEST"
.CommandType = ADODB.CommandTypeEnum.adCm
dStoredPro
c
param = .CreateParameter("Piv_Exte
rnalImageI
d", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Input, 18) 'object id
.Parameters.Append(param)
param = .CreateParameter("Piv_Exte
rnalImageN
ame", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Input, 25) 'object name
.Parameters.Append(param)
param = .CreateParameter("Piv_Prim
aryIdentif
ierType", ADODB.DataTypeEnum.adChar,
ADODB.ParameterDirectionEn
um.adParam
Input, 1)
.Parameters.Append(param)
param = .CreateParameter("Piv_Prim
aryIdentif
ier", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Input, 9)
.Parameters.Append(param)
param = .CreateParameter("Piv_DocT
ypeCode", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Input, 4) 'doc type
.Parameters.Append(param)
param = .CreateParameter("Piv_Work
flowInstan
ceId", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Input, 10)
.Parameters.Append(param)
param = .CreateParameter("Pid_Scan
Date", ADODB.DataTypeEnum.adDate,
ADODB.ParameterDirectionEn
um.adParam
Input, 10) 'scan date
.Parameters.Append(param)
param = .CreateParameter("Pio_rtn_
code", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Output, 20)
.Parameters.Append(param)
param = .CreateParameter("Pio_rtn_
text", ADODB.DataTypeEnum.adVarCh
ar, ADODB.ParameterDirectionEn
um.adParam
Output, 200)
.Parameters.Append(param)
End With
scandate param is filled like this.
cmd.Parameters("Pid_ScanDa
te").Value
= CDate(mm & "/" & dd & "/" & yyyy)
i get the following error
PLS-00306: wrong number or types of arguments in call to 'P_PROCESS_DOC_IMAGE_REQUE
ST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Pid_scandate is the 7th param in the stored procedute.
Can anyone help..... I can not change the stored procedure.
thanks rb
Start Free Trial