2013-04-29 55 views
0

我有一個使用訪問數據庫的網站,我想更改連接到SQL Server數據庫,我使用SQL Server遷移數據庫,但是我必須更改連接代碼和sql請求。Access數據庫遷移到SQLServer,我應該在代碼中更改什麼?

這裏是什麼,我在代碼(IM使用WebMatrix中)的副本:

pageConn.asp:

<% Dim conn,connstr,Clkj_mdb 
    Clkj_mdb="/DaTa/#Clkj_Cms#.mdb" 
    connstr="DBQ="+server.mappath(""&Clkj_mdb&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" 
    on error resume next 
    set conn=server.createobject("ADODB.CONNECTION") 
    conn.open connstr 
     if err then 
      err.clear 
      set conn=nothing 
      response.write "Connect Error!" 
      response.End   
     End IF 
    %> 

我應該改變的東西在這部分也?

Class.asp:

<% If request.querystring("Edit")="B_E" Then 
    Set Rs=server.createobject("ADODB.Recordset") 
    Sql="select * from clkj_BigClass where clkj_BigClassID ="&request("clkj_BigClassID") 
    Rs.open Sql,conn,1,1 
%> 

謝謝您的時間!

回答

0

在這種情況下,您不需要對SQL進行任何更改,但需要更改連接字符串。你可以在這裏找到例如連接字符串:http://connectionstrings.com/sql-server-2012

Soemthing這樣應該這樣做:

connstr = "Provider=sqloledb;Data Source=<name of server>;Initial Catalog=<name of database>;User Id=<user id>;Password=<password>" 

展望未來,JET SQL(接入)和T-SQL(SQL服務器)之間的主要區別是:

您不能在T-SQL的DELETE語句中使用*:SQL Server中的DELETE * From MyTable變爲DELETE FROM MyTable

是/否Access中的列成爲SQL Server中的BIT字段。在SQL Server中,True代表1,而不像Access中那樣代表-1。

如果您使用#作爲JET SQL日期的分隔符,則必須在T-SQL中將它們更改爲單引號。

+0

我該怎麼做而不是這個變量:Clkj_mdb ?? 'Clkj_mdb =「/ DaTa /#Clkj_Cms#.mdb」' – tollamie 2013-04-30 06:55:49

+0

Nothing。這只是一個文件的路徑。 SQL Server連接字符串不需要路徑。 – 2013-04-30 09:46:04

+0

但是這個變量用於其他頁面,如: '」readonly =「readonly」>' – tollamie 2013-04-30 09:53:40

相關問題