2013-04-29 6 views
0

나는 액세스 데이터베이스를 사용하는 웹 사이트를 가지고 있지만 SQL Server DB 로의 연결을 변경하려고합니다. SQL Server로 데이터베이스를 마이그레이션하지만 연결 코드와 SQL 요청을 변경해야합니다. 여기Access 데이터베이스를 SQLServer로 마이그레이션 할 때 코드에서 무엇을 변경해야합니까?

내가 코드에서 (임 사용 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 문에 *를 사용할 수 없습니다. DELETE * From MyTable은 SQL Server에서 DELETE FROM MyTable이됩니다.

예/아니요 Access의 열이 SQL Server의 BIT 필드가됩니다. True는 SQL Server에서 1로 표시되고 Access에서는 -1이 아닙니다.

JET SQL에서 날짜 구분 기호로 #를 사용하는 경우 T-SQL에서 작은 따옴표로 변경해야합니다.

+0

이 변수 대신 무엇을해야합니까? Clkj_mdb ?? 'Clkj_mdb = "/ DaTa/# Clkj_Cms # .mdb" – tollamie

+0

아무 것도 없습니다. 파일에 대한 경로 일뿐입니다. SQL Server 연결 문자열에는 경로가 필요하지 않습니다. –

+0

그러나이 변수는 다른 페이지에서 사용됩니다 : ' – tollamie