MS Access数据库连接
用DSN连接并且没有用户名和密码:

<%
set conn = Server.CreateObject(“ADODB.Connection”)
conn.open “YourDSNName”
%>

用DSN连接并且有用户名和密码:

<%
set conn = Server.CreateObject(“ADODB.Connection”)
conn.open “YourDSNName”,”username”,”password”
%>

用实际的数据库绝对路径连接:

<%
Set conn = Server.CreateObject(“ADODB.Connection”)
Strconn=”DRIVER={Microsoft Access Driver (*.mdb)}; “
Strconn=Strconn & “DBQ=e:\yanhang\database.mdb”
conn.Open Strconn
%>

用实际的数据库相对路径连接:

<%
Set conn = Server.CreateObject(“ADODB.Connection”)
Strconn=”DRIVER={Microsoft Access Driver (*.mdb)}; “
Strconn=Strconn & “DBQ=” & Server.MapPath(“/database/yanhang.mdb”)
conn.Open Strconn
%>


MS SQL Server数据库连接

用DSN连接:

<%
set conn = Server.CreateObject(“ADODB.Connection”)
conn.open “DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename”
%>

不用DSN连接:

<%
Set conn = Server.CreateObject(“ADODB.Connection”)
DSNtemp=”DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename”
conn.open DSNtemp
%>


FoxPro数据库连接

<%
Set Conn = Server.CreateObject(“ADODB.connection”)
ConnStr= “Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBC;SourceDB=C:\yanhang\database.dbc”
Conn.Open ConnStr
%>


Oracle数据库连接:

<%
set conn=server.createobject(“adodb.connection”)
conn.cursorlocation=adUseClient
DSNTemp=”Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world”
conn.open DSNtemp
%>

用(Web Server端的)DSN(ODBC)连数据库要在建DSN时指定DataBase Server,即DSN包含了DataBase Server、ODBC Driver(数据库类型)、数据库。非DSN连数据库要在程序中指定DataBase Server、Driver(Provider)、数据库。总之本质都要指定DataBase Server:
    
    <%
    dim adoConnection
    dim adoRecordset
    Set adoConnection = Server.CreateObject(“ADODB.Connection”)
    rem adoConnection.open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath (“/”) & “\Data\NWind2K.mdb”
    ‘使用Microsoft OLEDB Provider for ODBC Drivers + SQL Server (Ms SQL 的 ODBC Driver)两层接口:
    adoConnection.Open “Data PROVIDER=MSDASQL.1;Driver=SQL Server;Server=playyuer;UID=sa;PWD=;Database=northwindcs”
    ‘使用Microsoft OLEDB Provider for SQL Server (Ms SQL 的 OLEDB 专用Native接口)一层接口:
    ‘adoConnection.Open “Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=northwindcs;Server=DBServerName;”
    Set adoRecordset = Server.CreateObject(“ADODB.Recordset”)
    adoRecordset.open “select 产品名称 as PName,产品.* from 产品”,adoConnection
    %>

我用asp & Mysql 已有一段時間~
至今尚無啥問題~
是用myODBC連MYSQL
只要把資料庫轉進MYSQL後
程式碼可以說完全不用改~
只是
欲使用rs.absolutepage和rs.recordcount等屬性
*在您設定connection及recorder後請記得設以下程式碼才能跑:
例:rs.CursorLocation = 3 ←就是這一行設定

連結語法就是下面三行

ODBCconnection = “DSN=XXXX; User ID=XXXX; PASSWORD=XXXX”
set conn = Server.CreateObject(“ADODB.Connection”)
conn.Open ODBCconnection


midicat~不好意思..更正一下..
是若要使用 Rs.AbsolutePage或Rs.RecordCount
就需要將Connection物件的CursorLocation屬性設為3
NOT rs.cursortlacation = 3

midicat    日期: 2002/3/29 下午 10:08:00 
??咦~
我是設rs.CursorLocation = 3 才能run的ㄛ~若沒加則無法run
資料庫設定的code 部份如下~

ODBCconnection = “DSN=XXXX; User ID=XXXX; PASSWORD=XXXX”
set conn = Server.CreateObject(“ADODB.Connection”)
conn.Open ODBCconnection

Set rs = Server.CreateObject(“ADODB.Recordset”)

rs.CursorLocation = 3

sql = “select * from num  order by autoid”

rs.Open sql, conn, 3,2

‘***************************************
page=CLng(request(“f_page”))


rs.pagesize=10
  if page=”" then
  page=1
  end if
  if page > rs.pagecount then
  page=rs.pagecount
  end if
  if page <= 0 then
  page=1


  end if


sabcat   日期: 2002/3/29 下午 10:57:00 
@@” REALLY@@?
我的是
Set Conn = Server.CreateObject(“ADODB.Connection”)
Conn.Open “Driver={MySQL ODBC 3.51 Driver};DataBase=mysql;”
Conn.CursorLocation = 3
Set Rs = Conn.Execute(“Select * From user”)

For i=0 To Rs.RecordCount -1
  ………………………
  ………………………
Next

可能做法不同吧@@ 如果我用你的方法..
反而會出現錯誤..說什麼不能在開啟時執行
丫災@@~再研究了~ 
11  回應者:  midicat    日期: 2002/3/30 上午 02:23:00 
嗯~
看來做法是不同~
我有用到Set rs = Server.CreateObject(“ADODB.Recordset”)
而你是用Set Rs = Conn.Execute(“Select * From user”)
 
13  回應者:  Josie    日期: 2004/5/16 上午 12:55:00 
MySQL有提供另一種的分頁方式
sql = “select * from TableName order by FieldName limit StartRecord,MaxRecord”

StartRecord是指開始選取的資料錄
MaxRecord是指取回的資料錄筆數

個人覺得比RecordSet.AbsolutePage好用,所以在此推薦

rs.pagesize=10
  if page=”" then
  page=1
  end if
  if page > rs.pagecount then
  page=rs.pagecount
  end if
  if page <= 0 then
  page=1


  end if


sabcat   日期: 2002/3/29 下午 10:57:00 
@@” REALLY@@?
我的是
Set Conn = Server.CreateObject(“ADODB.Connection”)
Conn.Open “Driver={MySQL ODBC 3.51 Driver};DataBase=mysql;”
Conn.CursorLocation = 3
Set Rs = Conn.Execute(“Select * From user”)

For i=0 To Rs.RecordCount -1
  ………………………
  ………………………
Next

可能做法不同吧@@ 如果我用你的方法..
反而會出現錯誤..說什麼不能在開啟時執行
丫災@@~再研究了~ 
11  回應者:  midicat    日期: 2002/3/30 上午 02:23:00 
嗯~
看來做法是不同~
我有用到Set rs = Server.CreateObject(“ADODB.Recordset”)
而你是用Set Rs = Conn.Execute(“Select * From user”)
 
13  回應者:  Josie    日期: 2004/5/16 上午 12:55:00 
MySQL有提供另一種的分頁方式
sql = “select * from TableName order by FieldName limit StartRecord,MaxRecord”

StartRecord是指開始選取的資料錄
MaxRecord是指取回的資料錄筆數

個人覺得比RecordSet.AbsolutePage好用,所以在此推薦


评论

该日志第一篇评论

发表评论

评论也有版权!