Principales respuestas
Error con la inserción de datos.

Pregunta
-
chicos tengo un problema con la inserción de datos cuando ejecuto esta parametrización. en ASP classico
Set objCon = Server.CreateObject("OBConnect.GetConnect") Set objADC = objCon.GetDatabaseConnect(connect_OB) Set strSQL = server.CreateObject ("ADODB.command") strSQL.ActiveConnection = objADC strSQL.CommandText = "sp_ofb_insrt_cntto_empsa_2" strSQL.CommandType = 4 strSQL.Prepared = true strSQL.Parameters.Append srtSQL.CreateParameter("cod_sub_prdto", adChar, adParamInput, 4, Cstr(cod_sub_prdto)) strSQL.Parameters.Append srtSQL.CreateParameter("cod_cntto",adChar, adParamInput,15, Cstr(objDLL.Canonicalize(cod_cntto)) ) strSQL.Parameters.Append srtSQL.CreateParameter("cod_prdto",adChar, adParamInput,2, cstr(objDLL.Canonicalize(cod_cntto) )) strSQL.Parameters.Append srtSQL.CreateParameter("nro_prsna_empsa", adChar,adParamInput,10,Empresa("RutCliente").Value ) strSQL.Parameters.Append srtSQL.CreateParameter("nom_prsna_etcdo", adVarchar,adParamInput,120,Cstr(objEncoder.Canonicalize(mid(session("cod_srv")),1,len(session("cod_srv"))-1 )+"C" ) ) strSQL.Parameters.Append srtSQL.CreateParameter("fch_crecn", adDBTimeStamp,adParamInput,,FormatDateTimeDB(fch_hoy) ) strSQL.Parameters.Append srtSQL.CreateParameter("fch_atvcn", adDBTimeStamp,adParamInput,,fch_atvcn ) strSQL.Parameters.Append srtSQL.CreateParameter("fch_vncto", adDBTimeStamp,adParamInput,,fch_vncto ) strSQL.Parameters.Append srtSQL.CreateParameter("fch_est", adDBTimeStamp,adParamInput,,FormatDateTimeDB(fch_hoy) ) strSQL.Parameters.Append srtSQL.CreateParameter("cod_est", adNumeric,adParamInput,,cod_est ) strSQL.Parameters.Append srtSQL.CreateParameter("flg_atz_nmn", adDBTimeStamp,adParamInput,,Request.Form("flg_atz_nmn") ) strSQL.Parameters.Append srtSQL.CreateParameter("flg_pco", adNumeric,adParamInputadParamInput,,Request("flg_pco")) strSQL.Parameters.Append srtSQL.CreateParameter("fch_cpa", adDBTimeStamp,,,aux_fch_cpa ) strSQL.Parameters.Append srtSQL.CreateParameter("flg_cnpto_pag", adNumeric,adParamInput,, flg_cbr ) strSQL.Parameters.Append srtSQL.CreateParameter("flg_tpo_cob", adNumeric,adParamInput,,flg_tranf ) strSQL.Parameters.Append srtSQL.CreateParameter("flg_tpo_sup", adNumeric,adParamInput,,0) strSQL.Parameters.Append srtSQL.CreateParameter("flg_pym", adNumeric,adParamInput,,0) strSQL.Parameters.Append srtSQL.CreateParameter("cod_tpo_pol", adChar,adParamInput,2, cstr(objDLL.Canonicalize(cstr(cod_tpo_pol)))) strSQL.Execute
imagen del error
no entiendo que puede ser ya he probado varias cosas pero sigue saliendo el mismo error. el error que se muestra en la imagen es la primera linea:
strSQL.Parameters.Append srtSQL.CreateParameter("cod_sub_prdto", adChar, adParamInput, 4, Cstr(cod_sub_prdto))
Saludos.
Respuestas
-
Entonces lo que me parece que falla aquí es que la variable cod_sub_prdto debe tener un valor nulo. En .Net uno debe cambiar nulls por DbNull.Value. No recuerdo qué se hace en OleDB. :-(
Jose R. MCP
Code Samples- Marcado como respuesta MichelleRebeca jueves, 19 de mayo de 2016 19:54
Todas las respuestas
-
Hace muchos años que no toco VB o ASP clásico. ¿Está seguro que los nombres de parámetros no necesitan el @? Yo sé que en .Net pueden omitirse, pero ¿será cierto también en OleDB?
También sería útil que nos mostrara la definición del procedimiento almacenado. No tiene que ser el código completo, solamente el encabezado. Desde CREATE PROCEDURE hasta el AS.
Jose R. MCP
Code Samples -
siii, asi e como esta en la base de datos
ALTER PROCEDURE [usr_ofb].[sp_ofb_insrt_cntto_empsa_2] @cod_sub_prdto char(4), @cod_cntto char(15), @cod_prdto char(2), @nro_prsna_empsa char (10), @nom_prsna_etcdo varchar (120) = null, @fch_crecn smalldatetime, @fch_atvcn smalldatetime = null, @fch_vncto smalldatetime = null, @fch_est smalldatetime, @cod_est smallint, @flg_atz_nmn smallint, @flg_pco smallint, @fch_cpa smalldatetime = null, @flg_cnpto_pag smallint = null, @flg_tpo_cob smallint = null, @flg_tpo_sup smallint = null, @flg_pym smallint = null, @cod_tpo_pol char(2) AS
la cosa es que si probé con el @ el donde están los nombres de los campos pero aun así no funciona... realmente he probado de todo pero se y siento que debe ser una tontera... -
Entonces lo que me parece que falla aquí es que la variable cod_sub_prdto debe tener un valor nulo. En .Net uno debe cambiar nulls por DbNull.Value. No recuerdo qué se hace en OleDB. :-(
Jose R. MCP
Code Samples- Marcado como respuesta MichelleRebeca jueves, 19 de mayo de 2016 19:54