oracle - fields asp classic
ASP ADO.PARAMETER clásico ASP Asignación a Oracle 10g NUMBER tipo de datos (1)
Consideraría usar el método CreateParameter()
del objeto ADODB.Command
para construir los parámetros correctamente. Es probable que no sea el tipo de datos que está pasando o la precisión, etc. ese es el problema, sino que faltarán propiedades del objeto Parameter
no configurado (como, por ejemplo, Direction
) o las Constantes con nombre no están definidas.
Teniendo esto en cuenta para este ejemplo en particular, busqué el tipo de datos esperado Constancia nombrada para el tipo de datos NUMBER
de Oracle y, de acuerdo con Carl Prothman - Mapeo de tipos de datos (un excelente recurso para mapear constantes ADO a varias fuentes de datos) , debería usar adNumeric
que es 131
. Armado con esa información, construiría el parámetro como tal;
<%
Dim cmd: Set cmd = Server.CreateObject("ADODB.Command")
With cmd
...
''Define parameters
Call .Parameter.Append(.CreateParameter("par1", adNumeric, adParamInput, 9))
...
''Set Parameter values
.Parameter("par1").Value = MYNUMBER
...
End With
%>
...
- denota código supuesto para construir el objeto ADODB.Command
.
Enlaces útiles
- A: ADODB.Parameters error ''800a0e7c'' El objeto de parámetro está definido incorrectamente. Se proporcionó información incompleta o incoherente (en caso de que la causa sea que no tiene definidas las constantes con nombre) .
- A: Cómo usar las variables ASP en la declaración SQL (ejemplo más completo del uso del objeto
ADODB.Command
) .
Tengo una base de datos Oracle 10g con un campo definido como NÚMERO. Estoy convirtiendo un ASP clásico (vbscript) de sql en línea a parametrizado. No puedo hacer que ADO.PARAMETER se asigne a un NÚMERO. Todo lo que obtengo es "El objeto del parámetro está incorrectamente definido. Se proporcionó información incompleta o incoherente". Intenté decimal, numérico, con precisión y escala, int, bigint, varchar, tamaños y toda la combinación que se me ocurre.
Dim param
Set param = Server.CreateObject("ADODB.Parameter")
param.Type = ? '' adDecimal
param.Precision = ? '' 38
param.NumericScale = ? '' 0
param.size = ?
.Value = MYNUMBER
¿Alguien puede decirme el tipo, precisión, escala, tamaño, etc. que necesito?