经典 ASP ADO.PARAMETER 映射到 Oracle 10g NUMBER 数据类型
Classic ASP ADO.PARAMETER Mapping to Oracle 10g NUMBER datatype
我有一个 Oracle 10g 数据库,其中一个字段定义为 NUMBER。我正在将经典 ASP (vbscript) 从内联 sql 转换为参数化。我无法将 ADO.PARAMETER 映射到 NUMBER。我得到的只是 "Parameter object is improperly defined. Inconsistent or incomplete information was provided." 我试过 decimal、numeric、with precision and scale、int、bigint、varchar、sizes 和我能想到的所有组合。
Dim param
Set param = Server.CreateObject("ADODB.Parameter")
param.Type = ? ' adDecimal
param.Precision = ? ' 38
param.NumericScale = ? ' 0
param.size = ?
.Value = MYNUMBER
谁能告诉我我需要的类型、精度、比例、大小等?
我会考虑使用 ADODB.Command
对象的 CreateParameter()
方法来正确构建参数。问题可能不是您传递的数据类型或精度等,而是缺少未设置 对象的 Parameter
属性(例如 Direction
for示例) 或未定义命名常量。
考虑到这个特定示例,我查找了 Oracle NUMBER
数据类型的预期数据类型 Named Constant 并根据 Carl Prothman - Data Type Mapping (一个很好的映射资源ADO 常量到各种数据源) 你应该使用 adNumeric
即 131
。有了这些信息,我会像这样构建参数;
<%
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
%>
...
- 表示构建 ADODB.Command
对象的假定代码。
有用的链接
- A: ADODB.Parameters error '800a0e7c' Parameter object is improperly defined. Inconsistent or incomplete information was provided (如果原因是您没有定义命名常量).
- A: How to use ASP variables in SQL statement (使用
ADODB.Command
对象的更完整示例).
我有一个 Oracle 10g 数据库,其中一个字段定义为 NUMBER。我正在将经典 ASP (vbscript) 从内联 sql 转换为参数化。我无法将 ADO.PARAMETER 映射到 NUMBER。我得到的只是 "Parameter object is improperly defined. Inconsistent or incomplete information was provided." 我试过 decimal、numeric、with precision and scale、int、bigint、varchar、sizes 和我能想到的所有组合。
Dim param
Set param = Server.CreateObject("ADODB.Parameter")
param.Type = ? ' adDecimal
param.Precision = ? ' 38
param.NumericScale = ? ' 0
param.size = ?
.Value = MYNUMBER
谁能告诉我我需要的类型、精度、比例、大小等?
我会考虑使用 ADODB.Command
对象的 CreateParameter()
方法来正确构建参数。问题可能不是您传递的数据类型或精度等,而是缺少未设置 对象的 Parameter
属性(例如 Direction
for示例) 或未定义命名常量。
考虑到这个特定示例,我查找了 Oracle NUMBER
数据类型的预期数据类型 Named Constant 并根据 Carl Prothman - Data Type Mapping (一个很好的映射资源ADO 常量到各种数据源) 你应该使用 adNumeric
即 131
。有了这些信息,我会像这样构建参数;
<%
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
%>
...
- 表示构建 ADODB.Command
对象的假定代码。
有用的链接
- A: ADODB.Parameters error '800a0e7c' Parameter object is improperly defined. Inconsistent or incomplete information was provided (如果原因是您没有定义命名常量).
- A: How to use ASP variables in SQL statement (使用
ADODB.Command
对象的更完整示例).