¾Æ·¡´Â ¾Û°úÀÇ Åë½ÅÇÁ·ÎÅäÄÝ ÆäÀÌÁö ÀÔ´Ï´Ù.
¾Û¿¡¼ ºü¸¥½Ã°£¾È¿¡ µÎ¹øÀ» ¾Æ·¡ÆäÀÌÁö¸¦ È£ÃâÇÏ´Â ¿¡·¯°¡ ÀÖ¾î¼ begintransÀ» select ±¸¹®À§¿¡ °É¾î Çѹø¸¸ ½ÇÇà µÇµµ·Ï ÇÒ·Á°í Çϴµ¥
°è¼Ó µÎ¹ø¾¿ insert °¡ µÇ°í ÀÖ½À´Ï´Ù.
select ±¸¹®À§¿¡ Àú·¸°Ô »ç¿ëÇÏ°Ô´Â°Ô ¸Â´ÂÁö °í¼ö´Ôµé Á¶¾ð ºÎŹÇÕ´Ï´Ù.
On Error Resume Next
oConn.BeginTrans
sSQL = "SELECT id FROM members WITH(XLOCK) WHERE id='" & userid & "' "
oRs.Open sSQL, oConn
If Not oRs.BOF Then
ret = "DUP"
Else
sSQL = "SELECT newid() "
Set sRs = oConn.Execute(sSQL)
userguid = sRs(0)
Set sRs = Nothing
userguid = Replace(userguid,"{","")
userguid = Replace(userguid,"}","")
If onenew="Y" Then
sSQL = "INSERT INTO members (member_guid, id, pwd, coin, app_id, join_device, join_key, join_ver, join_date, adult_flag, flag) VALUES ("
sSQL = sSQL & " '" & userguid & "' "
sSQL = sSQL & ",'" & userid & "' "
sSQL = sSQL & ",'" & Replace(userpw,"'","''") & "' "
sSQL = sSQL & ",'0' "
sSQL = sSQL & ",'" & appid & "' "
sSQL = sSQL & ",'" & model & "' "
sSQL = sSQL & ",'" & devicekey & "' "
sSQL = sSQL & ",'" & ver & "' "
sSQL = sSQL & ",getdate() "
sSQL = sSQL & ",'" & adult & "' "
sSQL = sSQL & ",'ONENEW' "
sSQL = sSQL & ") "
LogDev "SQL", sSQL
oConn.Execute sSQL
Else
sSQL = "INSERT INTO members (member_guid, id, pwd, coin, app_id, join_device, join_key, join_ver, join_date, adult_flag) VALUES ("
sSQL = sSQL & " '" & userguid & "' "
sSQL = sSQL & ",'" & userid & "' "
sSQL = sSQL & ",'" & Replace(userpw,"'","''") & "' "
sSQL = sSQL & ",'0' "
sSQL = sSQL & ",'" & appid & "' "
sSQL = sSQL & ",'" & model & "' "
sSQL = sSQL & ",'" & devicekey & "' "
sSQL = sSQL & ",'" & ver & "' "
sSQL = sSQL & ",getdate() "
sSQL = sSQL & ",'" & adult & "' "
sSQL = sSQL & ") "
LogDev "SQL", sSQL
oConn.Execute sSQL
End If
ret = "OK"
End If
oRs.Close
If Err.Number<>0 Then
LogWrite "RegMember Error", Err.Description
ret = "ERROR"
Else
oConn.CommitTrans
End If
|
±×·±µ¥ À§ ¾ð¾î´Â try ~ catch°¡ ¾Æ´Ñ ±×³É ¼º°ø, ½ÇÆп©ºÎ°¡ returnµÇ³ª º¸³×¿ä.
¾ÏÆ° ÇØ´ç ¹®Á¦´Â Æ®·£Á§¼ÇÀ¸·Î ÇØ°áÇÏ´Â°Ô ¾Æ´Õ´Ï´Ù.
ÇØ´ç ¾Û¿¡¼ 2¹ø È£ÃâÀ» ¸·´Â°Ô º£½ºÆ® ÀÌ°ÚÀ¸³ª, ±×°Ô ºÒ°¡´É ÇÑ°æ¿ì·Î º¸À̴µ¥ ±×·¸´Ù¸é insert ¹®À» º¸°Çµ¥
members Å×À̺íÀÇ pk´Â member_guid ÀÌÁö¸¸ ³í¸®Àû pk´Â id ÀΰÍÀ¸·Î º¸ÀÔ´Ï´Ù.
µû¶ó¼ SELECT newid() ¸¦ ÅëÇؼ member_guid ¸¦ ¹Ù·Î°¡Á®¿ÀÁö ¸»°í ±×Àü¿¡ id°¡ ÀÌ¹Ì ÀÖ´ÂÁö¸¦ È®ÀÎÈÄ
¾ø´Â°æ¿ì¿¡¸¸ member_guid ¸¦ °¡Á®¿Í insert¸¦ Çϵµ·Ï ÇØÁà¾ß ÇÕ´Ï´Ù.
¶Ç´Â newid(id) ¿Í °°ÀÌ Æã¼Ç¿¡ id¸¦ ÆĶó¸ÞÅÍ·Î ¹Þ°ÔÇÏ¿© id°¡ ¾ø´Â °æ¿ì¿¡¸¸ member_guid ¸¦ ¸®ÅÏÇÏ°Ô ÇØÁÖ¸é µË´Ï´Ù.
Ãß°¡·Î member_guid¿¡ ÀÌ¹Ì À¯´ÏÅ©À妽º°¡ °É·ÁÀÖÀ»ÅÙµ¥ »ç¿ëÀÚ°¡ id°¡ ÀÖ´À³Ä ¾ø´À³Ä¸¦ ºü¸£°Ô ÆÇ´ÜÇؾßÇÒÅ×´Ï id¿¡ À妽º¸¦ Ãß°¡·Î °É¾îÁà¾ß°ÚÁö¿ä.