MSSQL 2 MySQL 변환, asp 게시판 소스 수정 > 기술자료 | 해피정닷컴

MSSQL 2 MySQL 변환, asp 게시판 소스 수정 > 기술자료

본문 바로가기

사이트 내 전체검색

MSSQL 2 MySQL 변환, asp 게시판 소스 수정 > 기술자료

MySQL MSSQL 2 MySQL 변환, asp 게시판 소스 수정

페이지 정보


본문

Database Converter from Microsoft SQL Server to MySQL


1. 준비사항

MySQL5 설치, 포트는 우선 3306으로 하고 나중에 변경요.
MyODBC3.5 설치
MYOLEDB3 설치 후 한글 패치
MsSQL2MySQL 다운 설치 ( https://sourceforge.net/projects/mssql2mysql/ )


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 이렇게 쓰세요.



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

댓글목록

등록된 댓글이 없습니다.


Total 111건 5 페이지
  • RSS
기술자료 목록
31
MySQL   17521  2009-08-21 08:04  
30
MySQL   19703  2009-08-19 13:23  
29
MySQL   21432  2009-08-18 20:46  
28
MySQL   14552  2009-07-23 09:57  
27
MySQL   18580  2009-06-04 20:39  
26
MySQL   24522  2009-06-04 20:38  
25
MySQL   15281  2009-03-21 19:48  
24
MySQL   24547  2009-03-13 19:25 ~ 2019-10-08 22:59  
23
MySQL   12831  2009-03-11 22:28  
22
MySQL   14025  2009-01-03 13:47 ~ 2017-10-30 02:25  
21
MySQL   21468  2009-01-03 12:37  
20
MySQL   15898  2008-05-01 05:08  
열람
MySQL   54421  2007-12-01 19:26 ~ 2017-10-23 16:45  
18
MySQL   12403  2007-11-02 10:01  
17
MySQL   22790  2007-10-04 13:36 ~ 2024-01-24 15:16  
16
MySQL   31653  2007-08-24 06:16 ~ 2016-01-12 00:00  
15
MySQL   23115  2007-08-22 23:28  
14
MySQL   21373  2007-07-26 20:49  
13
MySQL   15257  2007-07-22 17:28  
12
MySQL   16106  2007-04-28 05:45  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.