<%@ LANGUAGE="VBscript" %>
<%Response.Buffer = True
On Error Resume Next
%>
-----------------------------
<%
'ole db连接
set cnn1 = Server.CreateObject("ADODB.Connection")
'连接串需要注意sqlserver的实例名,是否是默认,非默认必须要写出来
cnn1.Open "Driver={SQL Server};Server=.;Database=SportsDB;UID=wgscd;PWD=111111;"
'或者 cnn1.Open "provider=sqloledb;data source=(local);uid=wgscd;pwd=111111;database=SportsDB"
sql = "select * from Customers"
set rs= Server.CreateObject("ADODB.RecordSet")
rs.Open sql,cnn1 ,1,1
'获得连接信息与查询结果行数
Response.write("连接1:" & cnn1.ConnectionString & "
行数:" & rs.recordcount & "
")
'循环结果输出
do While not rs.eof
'Response.write(rs(0) & "," & rs(1) & "
")
Response.write rs("id") & "
id:" & rs.Fields.Item("id").Value & "
"
rs.MoveNext
Loop
rs.close()
cnn1.close()
set cnn1 = nothing
'------------------------------------------------------------
‘带参数查询’
dim License
dim Product
License=2
Product=22
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("Driver={SQL Server};Server=.;Database=SportsTek;UID=wgscd;PWD=111111;")
Dim Cust
Set Cust = Server.CreateObject ("ADODB.Recordset")
Cust.CursorLocation = 3
sql = "SELECT * FROM Customers WHERE id=? AND cust_name=?"
'Cust.Open sql, Conn, 1,3
set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = Conn
cmd.CommandText = sql
'-------------------------------------------------------------------------------
'cmd.Parameters.Append cmd.CreateParameter("",200, 1, 100,License)'参数为空也行
'cmd.Parameters.Append cmd.CreateParameter("",200, 1, 100,Product)'参数为空也行
'-------------------------------------------------------------------------------
cmd.Parameters.Append cmd.CreateParameter("@id",200, 1, 100,License)
cmd.Parameters.Append cmd.CreateParameter("@cust_name",200, 1, 100,Product)
'-----------------------------------------------
'not work(下面这种模式不正确)
'cmd.Parameters("@id").value = License
'cmd.Parameters("@cust_name").value = License
'-----------------------------------------------
Cust.Open cmd
'Sql injection add----------
IF Cust.RecordCount > 0 THEN
Response.write "
count:" & Cust.RecordCount & "
cust_name:" & Cust("cust_name")
else
Response.write "no
"
end if
Cust.Close
Conn.close
set Conn = nothing
'------------------------------------------------------------------
If Err.Number <> 0 Then
'Response.Clear
response.write"发生错误:"
%>
错误 Number: <%= Err.Number %>
错误信息: <%= Err.Description %>
出错文件: <%= Err.Source %>
出错行: <%= Err.Line %>
<%End If%>
Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value) 返回值 返回 Parameter 对象。 参数 Name 可选,字符串,代表 Parameter 对象名称。 Type 可选,长整型值,指定 Parameter 对象数据类型。关于有效设置请参见 Type 属性。 Direction 可选,长整型值,指定 Parameter 对象类型。关于有效设置请参见 Direction 属性。 Size 可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。 Value 可选,变体型,指定 Parameter 对象的值。 说明 使用 CreateParameter 方法可用指定的名称、类型、方向、大小和值创建新的 Parameter 对象。在参数中传送的所有值都将写入相应的 Parameter 属性。 该方法无法自动将 Parameter 对象追加到 Command 对象的 Parameter 集合,这样就可以设置附加属性。如果将 Parameter 对象追加到集合,则 ADO 将使该附加属性的值生效。 如果在 Type 参数中指定可变长度的数据类型,那么在将它追加到 Parameters 集合之前必须传送 Size 参数或者设置 Parameter 对象的 Size 属性 ================================================================================ 参数值的类型的意义如下: Type名称 整数值 功能 adDBTimeStamp 135 日期时间数据类型 adDecimal 14 十进制整数值 adDouble 5 双精度小数值 adError 10 系统错误信息 AdGUID 72 全域性唯一识别字(Globally unique identifier) adDispath 9 COM/OLE自动对象(Automation Object) adInteger 3 4字节有符号整数 adIUnknown 13 COM/OLE对象 adLongVarBinary 205 大型2字节值 adLongVarChar 201 大型字符串值 adLongVarWChar 203 大型未编码字符串 adNumeric 131 十进制整数值 adSingle 4 单精度浮点小数 adSmallInt 2 2字节有符号整数 adTinyInt 16 1字节有符号整数 adUnsignedBigInt 21 8字节无符号整数 adUnsignedInt 19 4字节无符号整数 adUnsignedSmallInt 18 2字节无符号整数 adUnsignedTinyInt 17 1字节无符号整数 adUserDefined 132 用户自定义数据类型 adVariant 12 OLE对象 adVarBinary 204 双字节字符变量值 adVarChar 200 字符变量值 advarchar 202 未编码字符串变量值 adWchar 130 未编码字符串 方向值的意义如下: Direction名称 整数值 功能 adParamInput 1 允许数据输入至该参数当中 adParamOutput 2 允许数据输出至该参数当中 adParamInputOutput 3 允许数据输入、输出至该参数当中 adparamReturnValue 4 允许从一子程序中返回数据至该参数当中