Copy and Paste the ASP/HTML code below into the file created in the
previous step.
NOTE: The reader must point to his or her own database servers and
modify the connect string to use the correct userid (UID) and password
(PWD) arguments.
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-
1">
<TITLE>Document Title</TITLE>
</HEAD>
<BODY>
<%
On Error Resume Next
intCursorType=Request.Form("intCursorType")
strServer=Request.Form("radServer")
If intCursorType="" Then%>
<FORM ACTION="cursor_test.asp" METHOD=POST>
Select a cursor type:<br>
<SELECT NAME="intCursorType" SIZE="4">
<OPTION VALUE=0 SELECTED>Forward Only
<OPTION VALUE=1>Keyset
<OPTION VALUE=2>Dynamic
<OPTION VALUE=3>Static
</SELECT>
<P>
<INPUT TYPE="RADIO" NAME="radServer" VALUE="oracle" CHECKED>Oracle
<INPUT TYPE="RADIO" NAME="radServer" VALUE="sql">SQL Server
<P>
<INPUT TYPE=SUBMIT VALUE="Test">
</FORM>
<%Else
Set objConn = Server.CreateObject("ADODB.Connection")
If strServer="oracle" Then
objConn.Open "DRIVER={Microsoft ODBC for
Oracle};UID=you;PWD=me;SERVER=dseOracle;ConnectString=dseOracle;"
Else
objConn.Open
"DSN=LocalServer;SERVER=(local);UID=sa;PWD=;APP=Microsoft (R)
Developer
Studio;WSID=MAGISTER;DATABASE=pubs;OemToAnsi=Yes"
End If
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set objRst = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "SELECT colleague.* FROM colleague"
cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = objConn
objRst.CursorType=intCursorType
objRst.Open cmdTemp, , , 3
Response.Write("You selected a cursortype of " & intCursorType
&";<BR>")
Response.Write(strServer & " used cursortype=" & objRst.CursorType)
Randomize
pk=cint(Rnd()*100)
Response.Write "<P>Adding record with pk of " & pk
objRst.AddNew
objRst(0)=pk
objRst(1)="michael"
objRst(2)="corning"
objRst(3)=intCursorType
objRst.Update
If objConn.Errors.Count>0 Then%>
<P>
<HR>
A table with the following definition returns the error below when a
query-based update is attempted against <%=strServer%>
with cursortype = <%=objRst.CursorType%>.
<P>
<FONT COLOR=GREEN>
<PRE>
CREATE TABLE colleague
(
id INTEGER,
firstname VARCHAR2(35),
lastname VARCHAR2(35),
address VARCHAR2(33),
PRIMARY KEY(id)
)
</PRE>
</FONT>
<%For Each objErr in objConn.Errors
Response.Write(objErr.Description)
Response.Write("<BR> Source " & objErr.Source)
Response.Write("<BR> SQLState " & objErr.SQLState)
Response.Write("<BR> NativeError " &
objErr.NativeError)
Response.Write("<HR>")
Next
Else
Response.Write("<P>Record added successfully.")
End If
objRst.Close
Set objRst=Nothing
Set cmdTemp=Nothing
objConn.Close
Set objConn=Nothing
End If%>
</BODY>
</HTML>