강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

mssql mysql 변환, asp 게시판 소스 수정
작성자 : 13 김영철
등록날짜 : 2009.01.29 15:47
4,831

MS-SQL 에서 MySQL로 변환하는데 필요한 절차를 적어 봅니다.

2개월 정도 시행착오가 있었네요. ㅡㅡ;





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&page=1&IsSearch=true

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3255 [펌] 제12강 - 방명록 만들기 I M 최고의하루 12.23 5324
3254 팝업창 닫고 프레임이 있는 부모창에서 원하는 페이지로 이동하기 M 최고의하루 12.23 5286
3253 frame, iframe에서 쿠키, 세션 인증(로그인) 처리 안 될 때 해결 방법 13 김영철 01.14 5233
3252 이더넷의 원리 살짝 맛보기 M 최고의하루 12.18 5230
3251 [펌] 제12강 - 방명록 만들기 I M 최고의하루 12.23 5104
3250 [MSSQL] 그룹별 상위 n명 가져오기 예제 13 김영철 01.23 5055
3249 Eclipse에서 ASP 개발하기 M 최고의하루 12.04 5030
3248 XP 네트워크 공유 설정 99 단국강토 01.06 5013
3247 PC 메인보드 콘덴서 교체하기 M 최고의하루 12.18 4986
3246 SQL Server에서 글로벌 변수 구현하기 99 단국강토 12.30 4962
3245 대량 메일 발송 소스 (PHP 강좌/PHP 사용팁) 13 김영철 01.13 4950
3244 공유기 차단 무력화 시키는 법 99 단국강토 01.13 4942
3243 무료 네비게이션 프로그램 (PC버전) 댓글3 17 vane 12.27 4936
3242 root에서 mysql db가 안보일때 13 김영철 01.29 4917
3241 한글 영문변환 참고 문자표 2 아론k 06.24 4917
3240 내장 그래픽카드 죽이는 법 M 최고의하루 12.04 4875
3239 PC Alarm - 알람 프로그램 댓글1 M 최고의하루 12.04 4851
3238 AJAX 강의 2장 - XMLHttpRequest 오브젝트 사용하기 13 김영철 01.29 4839
3237 html - 테이블에 점선 넣기, 테이블 점선만들기 99 단국강토 02.05 4833
열람중 mssql mysql 변환, asp 게시판 소스 수정 13 김영철 01.29 4832
3235 ★★★셀렉트박스 테두리 없애기 99 단국강토 02.04 4828
3234 데이터베이스의 저장 프로시저를 자동으로 생성 M 최고의하루 12.24 4761
3233 CSS 사용방법 - 폰트표현 99 단국강토 02.19 4760
3232 벅스뮤직에 있는 음악 오디오 시디로 만들기 99 단국강토 01.05 4739
3231 mysql함수 [숫자열, 문자열, 집계, 날짜, 기타함수...] 99 단국강토 01.07 4735
3230 [ ASP ] 배열 ( Array ) 과 Scripting.Dictionary M 최고의하루 12.20 4620
3229 윈도우에 설치된 오라클9i 삭제하기 13 김영철 01.29 4620
3228 utf-8 세팅및 한글깨짐방지 M 최고의하루 12.23 4614
3227 [mssql]성능 측정을 위한 설정 13 김영철 01.23 4599
3226 [펌] 제13강 - 방명록 만들기 II M 최고의하루 12.20 4524
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취