반응형

- 선택 텍스트에 링크 생성

<script type="text/javascript">
function AddLink()
{
    //identify selected text
    var sText = document.selection.createRange();
    if (sText.text != "")
    {
      //create link
      document.execCommand("CreateLink");
      //change the color to indicate success
      if (sText.parentElement().tagName == "A")
      {
        sText.execCommand("ForeColor",false,"#FF0033");
      }
    }
    else
    {
        alert("Please select some text!");
    }  
}
</script>
<p unselectable="on">Select any portion of the following blue text, such as &quot;My
favorite Web site&quot;. Click the button to turn the selected text into a link. </p>
<p style="color= #3366CC">My favorite Web site is worth clicking on. Don't forget
to check out my favorite music group!</p>
<button onclick="AddLink()" unselectable="on">Click to add link</button>



- url 링크 생성

<HTML>
<BODY>
<H4 unselectable="on">연결을 생성하고 주소를 반환하는 예제</H4>
<SCRIPT>
function AddLink(){ // 선택된 텍스트를 인식한다.
  var sText=document.selection.createRange();
  if (!sText==''){  // 연결을 생성한다.
    document.execCommand('CreateLink');  // 문자열을 주소(URL)로 대체한다.
    if (sText.parentElement().tagName=='A'){
      sText.parentElement().innerText=sText.parentElement().href;
      document.execCommand('ForeColor','false','#FF0033');
    }
  } else alert('선택 가능한 적색 박스 속의 텍스트를 선택하라.');
}
</SCRIPT>
<P unselectable="on">적색 박스 속의 텍스트를 선택하고, 클릭하여 연결을 만들어 연결을 입력해 보라.</P>
<P style="color=#3366CC;border:solid 1 red">내 홈페이지, 내가 가장 많이 방문하는 페이지.</P>
<BUTTON onclick="AddLink()" unselectable="on">연결을 추가한다.</BUTTON>
</BODY>
</HTML>

반응형
LIST
반응형
[스토어드 프로시저] @@error 와 @@rowcount 를 이용한 에러 처리 [DB] MsSql

2010/04/12 01:48

복사 http://blog.naver.com/mrgoguma/140104872841

정확한 코드는 다음과 같습니다.
declare @result_code int , @processed_rows int

UPDATE DEPT SET DEPT_NM = '테스트부서' WHERE DEPT = 'AX'  

select @result_code = @@error , @processed_rows = @@rowcount

if @result_code <> 0 or @processed_rows <> 1
begin
  select @result_code
  return
end

select 문도 변수에 값을 저장할 수 있습니다.

 

자주 저지르는 실수!

declare @result_code int , @processed_rows int

UPDATE DEPT SET DEPT_NM = '테스트부서' WHERE DEPT = 'AX'    -- 'AX'라는 부서는 존재하지 않는다고 가정. 이럴 경우 처리된 행의 개수는 0개임
 
set @processed_rows = @@rowcount
set @result_code = @@error

if @result_code <> 0 or @processed_rows <> 1
begin
  select @result_code
  return
end

위의 코드는 에러가 발생하면 @@error 와 @@rowcount 를 별도의 변수에 저장하고 에러를 처리하는 코드입니다. 그런데 위의 에러처리 루틴은 결코 실행되지 않습니다.  @result_code 를 세팅하기 전에 set @processed_rows = @@rowcount 가 성공하면서  @@error 가 0으로 되고 @result_code 에는 언제나 0 이 세팅되기 때문입니다.

그렇다면 코드를 이렇게 바꾸면 어떨까요?

declare @result_code int , @processed_rows int

UPDATE DEPT SET DEPT_NM = '테스트부서' WHERE DEPT = 'AX'  

set @result_code = @@error
set @processed_rows = @@rowcount

if @result_code <> 0 or @processed_rows <> 1
begin
  select @result_code
  return
end

update 문을 실행하자마자 @@error 를 @result_code 에 넣었으므로 정상적인 값이 들어갈 것입니다. 그러면 @@rowcount 는 어떨까요? DEPT 테이블에 AX라는 부서가 없으므로  @@rowcount 는 0 이 되어야 합니다. 하지만 실행시켜보면 @processed_rows 에 1 이 들어가 있습니다. 이게 어찌된 일일까요???

원인은 set @result_code = @@error 때문입니다. @@rowcount 는 set 문에 의해서도 영향을 받습니다. 따라서 set @result_code = @@error 가 성공하면 한 개의 데이터가 변수에 저장되었으므로 @@rowcount 는 1이 되는 것입니다.

[출처] Stored Procedure 작성시 에러 처리 팁 

 

2. rollback, commit 할 때는 언제나 @@trancount 를 체크하자

@@trancount : 트랜잭션의 중첩 수준을 나타내는 시스템 함수. Begin tran 문에 의해 1씩 증가하고 commit tran 에 의해 1씩 감소한다. rollback tran 을 만나면 모두 롤백하면서 어떤 값을 가지고 있더라도 0 으로 변한다.

sp를 작성할 때 데이터의 정합성을 보장하기 위해서 트랜잭션을 사용하게 됩니다. 트랜잭션을 시작하면 언제나 begin tran, commit tran의 짝이 일치해야 하는 것은 당연하지요. 즉, 트랜잭션이 중첩되어서 begin tran 을 세번하게 되면 세번 commit 이 있어야 합니다. 단 rollback 은 한번에 @@trancount 를 0 으로 만들고 rollback 하기 때문에 rollback 하기 전에 언제나 @@trancount 를 체크하면서 rollback 해야 합니다.

begin tran

INSERT INTO DEPT ( … )

if @@error <> 0 or @@rowcount <> 1
begin
  if @@trancount > 0 rollback
  select -1 as err_code
  return
end

INSERT INTO TEST_TBL ( … )

if @@error <> 0 or @@rowcount <> 1
begin
  if @@trancount > 0 rollback
  select -2 as err_code
  return
end

if @@trancount > 0 commit

rollback 이나 commit 하기 전에 @@trancount 를 체크하는 것은 sp들간에 복잡하게 호출하고 각 sp들이 자체적으로 transaction 을 사용할 때 위력을 발휘합니다. 중첩 트랜잭션 처리에 관한 사항은 기배포한 중첩 트랜잭션 처리 가이드를 참고해주세요.

반응형
LIST
반응형
영문을 개념없이 ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
이렇게 쭉~~ 붙여서 치면 width 밖으로 삐져나가게 되는데

style="text-overflow: clip; overflow: hidden; word-break: break-all;";

넣어주면 IE6 7 8, FF 에서 모두 문제없이 줄바꿈 됨.
 word-break: break-all; 은 비표준 태그라고 하는데..
IE에서 다른방법은 모르겠으니 일단 패스..;
반응형
LIST
반응형

jQuery Code Assist 사용하기 (Aptana)
Introduction

jQuery 공부를 시작하기에 앞서 툴을 세팅합시다.. -_-v

Eclipse Galileo + Apatna 를 사용하여 jQuery Code Assist를 사용해 봅시다.

http://www.aptana.org



Installation Plugin

Help - Install New Software 클릭




http://download.aptana.org/tools/studio/plugin/install/studio 를 등록 후 Aptana Studio 를 선택합니다.




Next 클릭




라이센스 수락 후 Finish 클릭




경고가 나오는군요... 깔끔하게 패스!




이클리스를 재시작 합니다.




파이어폭스가 필요하다네요...





Install Aptana Features

Aptana 플러그인을 설치했다고 바로 되는게 아닙니다.

jQuery 를 지원하기 위해 플러그인 설치해야 합니다.

도구 모음에 보면 Aptana Studio 관련 아이콘이 몇 개 생겼습니다.

Install Aptna Features 를 클릭합니다.




Ajax Libraries - jQuery Support 를 선택 후 Install 버튼을 클릭합니다.




플러그인 설치 화면으로 넘어갑니다.

Ajax Frameworks - Aptana Support for jQuery 선택 후 Next 버튼을 클릭합니다.




Finish 클릭




플러그인 설치 - 이클립스 재시작 후 WIndow - Preferences 클릭




Aptana - Editors - JavaScript - Code Assist 메뉴에서 jQuery를 선택합니다.




js 파일을 편집하면 편집기가 Aptana 편집기인 것을 확인할 수 있습니다.

잘 되는군요 ㅎㅎㅎ




만약 편집기가 설치 전의 그냥 보통 편집기일 경우 설정에서 변경해줘야 합니다.


반응형
LIST

+ Recent posts