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 2,636건 112 페이지
  • RSS
기술자료 목록
416
ClassicASP   10921  2008-01-10 08:48  
415
PHP   23946  2008-01-10 01:01 ~ 2008-02-10 00:00  
414
영카트   12567  2008-01-07 22:48  
413
PHP   15002  2008-01-07 22:40  
412
PHP   16836  2008-01-04 00:15 ~ 2022-11-18 10:28  
411
그누보드   23177  2008-01-02 19:36  
410
ClassicASP   27532  2007-12-29 11:18  
409
Linux   12336  2007-12-28 22:02  
408
ClassicASP   11161  2007-12-28 14:42 ~ 2008-10-17 00:00  
407
그누보드   15562  2007-12-21 18:53 ~ 2020-11-12 14:43  
406
영카트   13840  2007-12-17 19:29  
405
etc쇼핑몰   22255  2007-12-21 11:54 ~ 2018-04-20 14:43  
404
일반   14016  2007-12-15 13:43  
403
JavaScript   16922  2007-12-13 10:32 ~ 2013-09-02 00:00  
402
JavaScript   13947  2007-12-13 10:27  
열람
MySQL   55887  2007-12-01 19:26 ~ 2017-10-23 16:45  
400
그누보드   11087  2007-12-01 19:16  
399
영카트   25685  2007-11-22 11:02  
398
HTML   14505  2007-11-21 19:29 ~ 2017-01-21 00:00  
397
그누보드   15401  2007-11-21 16:17  

검색

해피정닷컴 정보

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

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