asp銜接Mssql的辦法及常見的差錯
//第一種寫法:
MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=;database=infs;"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING
SET RS=SERVER.CreateObject("ADOBD.recordset")
SQL="SELECT * FROM TABLE ORDER BY ID DESC"
RS.open SQL,CONN,3,3
//第二種寫法:(DSN銜接)
MM_conn_STRING="DSN=BBS;UID=SA;PWD=12345"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING
SET RS=SERVER.CreateObject("ADOBD.recordset")
SQL="SELECT * FROM TABLE ORDER BY ID DESC"
RS.open SQL,CONN,3,3 // 3,3是改動、刪除、增添開關!
//第三種寫法:
MM_conn_STRING_own = "Driver={SQL Server};server=(local);uid=sa;pwd=11111;database=infs;"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING_own
//第四種 - 這種方式用在ACCESS中
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("asp.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
實現方式一:
<%
dim conn
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=(local);UID=使用者名稱;PWD=密碼;DATABASE=資料庫"
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={SQL Server};SERVER=(local);UID=使用者名稱;PWD=密碼;DATABASE=資料庫"
conn.open DSNtemp
%>
實現方式二:
<%
option explicit
dim startime
dim conn
dim connstr
dim db,pass_word,User_ID,Data_Source
startime=timer()
db="資料庫名稱"
Pass_word="帳號密碼"
User_ID="登陸帳號"
Data_Source="服務名稱或者ip"
Set conn = Server.CreateObject("ADODB.Connection")
connStr="Provider=SQLOLEDB.1;Password='"&pass_word&"';Persist Security Info=True;User ID='"&User_ID&"';Initial Catalog='"&db&"';Data Source='"&Data_Source&"'"
conn.Open connstr
function CloseDb
Conn.close
Set conn = Nothing
End Function
常見故障
(a)
Microsoft OLE DB Provider for ODBC Drivers 過錯 '80040e57'
[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.
這是由於資料庫表中欄位的位元組數太小了。
(b)
出錯提醒:
Microsoft OLE DB Provider for ODBC Drivers 過錯 '80040e57'
[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic
overflow error for data type smallint, value = 32768.
是由於欄位的類型是smallint太小了應改成int.
(c)
icrosoft OLE DB Provider for ODBC Drivers 過錯 '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'user78'.
/index333.asp,行30
資料庫的使用者名稱或密碼不對.
(d)
Microsoft OLE DB Provider for ODBC Drivers 差錯 '80004005'
[Microsoft][ODBC 驅動程式 管理器] 未發明資料來源名稱並且未指定預設驅動程式
/include/conn.asp,行3
這種現象的原由是:1.web伺服器沒有準確設定資料來源,
須要您提供主機名稱和資料庫IP地址,發信件到LIVEPERSON ,為您在伺服器上樹立資料來源,方能正常調用。