rezamicro
یک شنبه 27 خرداد 1386, 13:19 عصر
با سلام خدمت دوستان عزیز
برنامه من بصورت زیر میباشد :
نوع کانکشن : DSN
متد اجرای دستورات : Conn.Execute(sql)
<!--#include file="adovbs.inc" -->
<%
Dim Conn, strSQLproject, Recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=heartofntp;PWD=ntp"
%>
Dim Conn, strSQLproject, Recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=domain;PWD=sss"
strSQLproject = "SELECT * FROM project ORDER BY ID DESC"
Set RSproject = Conn.Execute(strSQLproject)
Do While not RSproject.EOF
Response.Write (RSproject("p_company")&"
")
Response.Write (RSproject("p_tel")&"
")
Response.Write RSproject("p_company")
Response.Write ("
")
RSproject.MoveNext
Loop
RSproject.close
Set RSproject=nothing
با توجه به اینکه در برنامه بالا CursorType تعریف نشده است حالت پیش فرض forward-only cursor است و باعث شده پس از اجرای برنامه در خطهای زیر
Response.Write
(RSproject("p_company")&"
")
Response.Write (RSproject("p_tel")&"
")
Response.Write RSproject("p_company")
فقط خط اول و دوم دارای خروجی هستند و خط سوم که تکرار خط اول است چون cursor بایستی به ابتدای Table در پایگاه برکردد و cursor از نوع forward-only cursor میباشددوباره خط سوم قابل اجرا نیست و زمانی که از دستور RSproject.CursorType = adOpenKeyset در خط بعد از فرمان Conn.Execute استفاده میکنم با خطای زیر مواجه میشوم :
ADODB.Recordset (0x800A0E79)
Operation is not allowed when the object is open.
به نظرم مفهوم خطا اینه که زمانی که ما recordset رو باز کردیم دیگه نمیتونیم خصوصیتCursorType برای اون تعریف کنیم
دوستان عزیز من با کانکشنهای DNS-Less یا متدهای بجز Conn.Execute هیچگونه مشکلی ندارم در کل نمیدونم در این حالت چطوری CursorType تعریف کنم
با تشکر
برنامه من بصورت زیر میباشد :
نوع کانکشن : DSN
متد اجرای دستورات : Conn.Execute(sql)
<!--#include file="adovbs.inc" -->
<%
Dim Conn, strSQLproject, Recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=heartofntp;PWD=ntp"
%>
Dim Conn, strSQLproject, Recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=domain;PWD=sss"
strSQLproject = "SELECT * FROM project ORDER BY ID DESC"
Set RSproject = Conn.Execute(strSQLproject)
Do While not RSproject.EOF
Response.Write (RSproject("p_company")&"
")
Response.Write (RSproject("p_tel")&"
")
Response.Write RSproject("p_company")
Response.Write ("
")
RSproject.MoveNext
Loop
RSproject.close
Set RSproject=nothing
با توجه به اینکه در برنامه بالا CursorType تعریف نشده است حالت پیش فرض forward-only cursor است و باعث شده پس از اجرای برنامه در خطهای زیر
Response.Write
(RSproject("p_company")&"
")
Response.Write (RSproject("p_tel")&"
")
Response.Write RSproject("p_company")
فقط خط اول و دوم دارای خروجی هستند و خط سوم که تکرار خط اول است چون cursor بایستی به ابتدای Table در پایگاه برکردد و cursor از نوع forward-only cursor میباشددوباره خط سوم قابل اجرا نیست و زمانی که از دستور RSproject.CursorType = adOpenKeyset در خط بعد از فرمان Conn.Execute استفاده میکنم با خطای زیر مواجه میشوم :
ADODB.Recordset (0x800A0E79)
Operation is not allowed when the object is open.
به نظرم مفهوم خطا اینه که زمانی که ما recordset رو باز کردیم دیگه نمیتونیم خصوصیتCursorType برای اون تعریف کنیم
دوستان عزیز من با کانکشنهای DNS-Less یا متدهای بجز Conn.Execute هیچگونه مشکلی ندارم در کل نمیدونم در این حالت چطوری CursorType تعریف کنم
با تشکر