[my-sql] MSSQL 2 MySQL 변환, asp 게시판 소스 수정 > MySQL Tip

본문 바로가기
 

[my-sql] MSSQL 2 MySQL 변환, asp 게시판 소스 수정

페이지 정보

작성자 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 55,002회 작성일 09-02-22 17:16

본문

Database Converter from Microsoft SQL Server to MySQL


1. 준비사항

MySQL5 설치, 포트는 우선 3306으로 하고 나중에 변경요.
MyODBC3.5 설치
MYOLEDB3 설치 후 한글 패치
MsSQL2MySQL 다운 설치 ( http://www.kofler.cc/mysql/mssql2mysql.html )


2. 데이타 전송하기 전에

=> my.ini 파일을 아래와 같이 설정하고 서버 재시작
아래 mysqld 옵션을 설정하지 않으면 데이타 전송시 한글과 특수문자를 쓸때 에러 발생

[client]
port=3306

[mysql]
default-character-set=euckr

[mysqldump]
default-character-set=euckr

[mysqld]
init_connect="SET collation_connection = euckr_korean_ci"
init_connect="SET NAMES euckr"
default-character-set=euckr
character-set-server=euckr
collation-server=euckr_korean_ci

=> Ms-SQL에서 자동증가 상수를 사용하였다면 해당 컬럼에 인덱스 추가해야 My-SQL에서 인식함.


3. 데이타 전송

MsSQL2MySQL 실행하고 연결 설정한 후 데이타 전송(포트가 3306이 아니면 에러남)
root 계정이 아닌 일반 계정으로 설정하여야 전송이 잘 되는 것 같습니다. (root 계정은 utf8 을 사용 추정)
방화벽은 없는지 접속자 위치는 맞는지 확인하세요. 안되면 오디비시도 설정하시구요.


4. MySQL에 사용자 추가하고 권한주고 웹에서 접속

Set DbCon=server.createobject("adodb.connection")
dbcon.open "provider=mysqlprov;location=localhost;data source=디비이름;intergrated security='';user id=아이
디;password=비번;port=포트;"

위에 설정이 안되는 경우가 있음(나도 지금 안됨 ㅡ.ㅜ) 아래 소스를 사용함.

Set dbcon=server.createobject("adodb.connection")
dbcon.open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=디비이름; user id=아이디;
password=비번; OPTION=35;port=포트;"


5. ASP 파일에서 변경해 줘야할 DB 관련 함수와 파라미터

1) TOP는 LIMIT으로 교체.
예) SELECT TOP 1 FROM board WHERE uid = 1
-> SELECT * FROM board WHERE uid = 1 LIMIT 1

2) @@IDENTITY는 작동하지 않음. LAST_INSERT_ID()로 수정.
예) SELECT @@IDENTITY
-> SELECT LAST_INSERT_ID()

3) MSSQL에서는 GROUP BY에 SELECT 뒤에 나오는 컬럼을 다 적어주어야 함.

4) GETDATE()는 NOW()(날짜와 시간)나 curdate()(날짜만)로 바꾼다.
Ms-SQL에서 날짜 형식에 빈칸을 넣으면 1900-01-01이 들어가는데 MySQL에서는 에러난다.
"1900-01-01 00:00:00" 이나 "1900-01-01" 날짜형식 삽입

5) DATEDIFF()
mysql - DateDiff( date(컬럼명이나 날짜) ,'"& date &"') = 0
mssql - DATEDIFF(day, date, GETDATE()) = 0

6) string + string 은 CONCAT 을 하면 된다.
예) SELECT str('가'+'나') as title FROM board
-> SELECT CONCAT('가'.'나') AS title FROM board

7) ROUND([숫자], [자릿수]).

8) LIKE 문에서는 '['가 있는지 확인하여야 함.

9) UNION 을 쓸 때 MYSQL에서는 SELECT를 ()로 꼭 감싸주어야 한다.

10) 게시판 수정 작업
Result.PageCount 와 Result.RecordCount 가 제일 문제인데 이것을 계산하여 해당 변수에 넣어주면 됩니다.
AbsolutePage 는 빼도 되는거 같구요.

if Request("page")="" then  '넘겨받는 변수는 페이지 값만
    page=1  
    startpage=1
else    
    page=cint(Request("page"))
    startpage=int(page/setsize)

    if startpage=(page/setsize) then
        startpage=page-setsize + 1
    else
        startpage=int(page/setsize)*setsize + 1
    end if
end if

stpage = int((page - 1) * pgsize) '각 페이지에 맞게 잘라올 시작값

sql = "Select count(*) From tbname '
Set RsCount = Dbcon.Execute (sql)

trcount = cint(RsCount(0)) 'Result.RecordCount

IF trcount mod pgsize = 0 THEN
   pgcount = trcount / pgsize 'Result.PageCount
ELSE
   pgcount = (trcount / 10) + 1
END IF

sql="SELECT * FROM tbname ORDER BY ref DESC limit " & stpage & "," & pgsize
Set result = Dbcon.Execute (sql)

select mref = Max(ref) from 테이블 => select Max(ref) as mref from 테이블


select count(*) from 테이블
여기서 반환값이 상수형이 아닌 문자형으로 나와서 Rs(0) > 0 이렇게 비교하면 에러나는 것 같음.
IF cint(Rs(0)) > 0 THEN 이렇게 쓰세요.

Ms-SQL을 5년가까이 써왔는데 지금 집에 허접한 작업 피시에서 검색하는데도 처리 속도가 서버보다 더 빠른 것 같네요. MySQL이 불안하고 기능이 제한되어 있었는데 5버젼에서 많은 기능이 추가되니 이제 궂이 M$-SQL 쓰지 마시고 MySQL 쓰시기 바랍니다.



자료출처 : http://www.taeyo.pe.kr/threadboard/Content.asp?table=Board_Asp&seqs=123713

댓글목록

등록된 댓글이 없습니다.

Total 243건 1 페이지
MySQL Tip 목록
번호 제목 글쓴이 조회 날짜
열람중 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 55003 02-22
242 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 41765 07-28
241 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 40649 08-16
240 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 40398 12-30
239 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 34787 10-29
238 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 34748 08-09
237 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 34735 11-01
236 차동박 이름으로 검색 30467 10-11
235 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 30157 10-31
234 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 29535 12-23
233 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 29378 05-04
232 no_profile human 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 28294 09-11
231 차동박 이름으로 검색 27926 08-24
230 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 26667 04-24
229 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 25094 07-06
228 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 24959 12-30
227 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 24709 10-29
226 no_profile 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 23932 08-13
게시물 검색