336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
whgdk

/*
 *  해당 문자열을 해당 구분문자로 분리하여 테이블형식으로 반환한다.
 */

CREATE FUNCTION FN_SPLIT
(
    @StrValue VARCHAR(1000),   -- 분리할 문자열
    @SplitChar VARCHAR(1)         -- 구분할 문자

RETURNS @SPLIT_TEMP TABLE  ( VALUE VARCHAR(50) )
AS 
BEGIN  
 
    DECLARE @oPos INT, @nPos INT
    DECLARE @TmpVar VARCHAR(1000) -- 분리된 문자열 임시 저장변수

 

    SET @oPos = 1 -- 구분문자 검색을 시작할 위치
    SET @nPos = 1 -- 구분문자 위치

 

    WHILE (@nPos > 0)
    BEGIN

        SET @nPos = CHARINDEX(@SplitChar, @StrValue, @oPos )


        IF @nPos = 0 
            SET @TmpVar = RIGHT(@StrValue, LEN(@StrValue)-@oPos+1 )
        ELSE
            SET @TmpVar = SUBSTRING(@StrValue, @oPos, @nPos-@oPos)

 

        IF LEN(@TmpVar)>0
            INSERT INTO @SPLIT_TEMP VALUES( @TmpVar )


        SET @oPos = @nPos +1 
    END


   RETURN 
END


[사용방법]

SELECT FROM FN_SPLIT('빨강|노랑|파랑|빨강|노랑|','|')
SELECT FROM FN_SPLIT('A,B,C,D,A',',')


출처 : Tong - 터미네이러님의 MSSQL통

블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
3주 동안 고인물로 지내다가 다시 새로운 물을 가득 넣기로 마음 굳게 먹었다.
요즘 별다르게 배운게 없고 공부한게 없었는데 이게 다 모 사이트 운영때문이다.. 결국은 핑계다 ㅡ,.-^

운영업무를 하다보면 고객의 요청에 의해서 각종 데이터들을 산출해야 한다. 
회원정보라던지 매출액등 월말, 분기별로 아주 바쁘게 데이터를 뽑아서 엑셀로 이쁘게 포장해서
고객에게 주면 참 좋아 하신다..^^; 

그런데 이런 데이터들을 산출하다 보면 SELECT 된 값들을 다른 테이블에 그 데이터만을 담아서 사용하고 싶은 경우가 있다. 그 중에 또 다른 값을 가져오거나  그 값들로 인해서 또 다른 테이블과 조인을 한다던가 해야 하는 일 말이다.  이런 테이블을 만들지 않으면 쿼리도 늘어나고 속도도 느려지니 헷갈리고 속도도 느려진다.

그래서 이 때  사용할수 있는게 SELECT INTO 이다. 
SELECT INTO는 현재 있는 테이블에 있는 내용 전체나 일부를 가져와서 새로운 테이블로 만들 때 사용한다.
기존에 있던 테이블에는 INSERT 시킬수가 없다. 기존 테이블에 INSERT를 시킬려면 SELECT INSERT를 사용하면 된다.

사용법
SELECT * FROM tableName
SELECT * INTO  temp_tableName(새로만들 테이블) FROM tableName

위에 사용법으로 테이블을 만들게 되면 영구적으로 테이블이 생기게 된다.
물론 DROP 명령으로 지워주면 되긴 하지만 잠시만 쓰고 지울 것이라면 굳이 영구 테이블을 만들지 않고 임시테이블을 만들어 사용하면 된다.

임시 테이블은 전역임시 테이블, 세션 임시 테이블 두개로 나뉜다.

만드는방법 사용할 수 있는 범위 삭제되는 시기
일반 테이블 CREATE TABLE 다른 세션에서도 DROP TABLE
세션 임시 테이블
#tablename
해당 세션에서만
세션이 끊어질 때
전역 임시 테이블
##tablename
다른 세션에서도
세션이 끊어질 때
tempdb의 일반 테이블
CREATE TABLE
다른 세션에서도
SQL 서버가 시작 될 때

사용법
SELECT * INTO #tablename FROM table
SELECT * INTO ##tablename FROM table
SELECT * FROM #tablename
SELECT * FROM ##tablename

이렇게 생성 된 테이블은 해당 데이터베이스에 생성되는 것이 아니라 tempdb에 만들어 지며 logout 할 때 자동으로 삭제가 된다. 

실무에서는 많이 사용하는지는 모르지만 개인적으로는 정말 많이 사용한다.

참고::
오라클에서는 사용법이 다르다.

CREATE TABLE tableName_temp
AS SELECT * FROM tableName


블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
기본적인 좌표는
Control.MousePosition.X
Control.MousePosition.Y
이고 이놈을 그대론 절때 못 쓴다. LCD화면의 좌표를 보내주는거 같고

픽스 해야한다.

해당컨트롤놈.PointToClient(new Point(Control.MousePosition.X, Control.MousePosition.Y));

이렇게 하면 해당컨트롤을 기준으로 마우스 실제 상대좌표가 어딘가 뱉어낸다.

이값은 해당컨트롤.마우스이벤트(MouseArgsEvent e)의 e.X와 같다.

후후. 안그럼 패딩 뺴주고 지랄날리부르스해야한다. 

편리하군

PointToClient와 PointToScreen



블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 원본이미지와 퍼센트를 이용하여 크기조정하기.







2. 원본이미지와 Size를 이용하여 크기조정하기



블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

폼실행
Form1_Move
Form1_LocationChanged
Form1_StyleChanged
Form1_BindingContextChanged
Form1_Load
Form1_Layout
Form1_VisibleChanged
Form1_Activated
Form1_Shown
Form1_Paint
Form1_KeyUp

다른창으로 가림
Form1_Deactivate
Form1_Paint

다른창으로 가림 해제
Form1_Activated
Form1_Paint

클릭해서 다른창으로 가림 해제
Form1_Activated
Form1_Paint
Form1_MouseCaptureChanged

마우스 움직임
Form1_MouseEnter
Form1_MouseMove
Form1_MouseHover
Form1_MouseLeave

키보드 누름
Form1_PreviewKeyDown
Form1_KeyDown
Form1_KeyPress
Form1_KeyUp

창종료
Form1_FormClosing
Form1_FormClosed


[출처] 

블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안드로이드 OS VMWare 설치하기

 

개발환경 : JDK 1.5, VMware 6.5.3, 안드로이드 1.6, window XP

 

http://www.android-x86.org/download 사이트에 가서 이미지를 다운받는다.


다운받은 iso 파일을 설치하기 위해 New Virtual Machine Wizard 를 실행한다.

그리고 Installer disc Image File 체크해서 파일을 넣는다나머지는 기본으로 선택하고

넘어간다.

이미지만 링크시켜서 로딩하게 되면 아래 화면과 같이 선택사항이 나오게 된다.

첫번째 Run Android-x86 without installation 선택하게 되면 설치 과정없이 바로

실행시켜 준다.

실행화면은 다음과 같다에뮬레이터 보다 훨씬 속도가 빠르기 때문에 내부 프로그램

테스트나 어플리케이션등을 다운받아 빠른 속도로 테스트 해보기 좋다.


저작자 표시

[출처] 녹두장군님의 블로그~



블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Server=서버명;Database=DB명;User ID=접속아이디;Password=비밀번호;Trusted_Connection=False

예제)

String strConnection = "Server=222.222.222.222;Database=mydb;User ID=myid;Password=pw;Trusted_Connection=False";


블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안드로이드 설계/코드 노하우

안드로이드사이드 운영자
한동호

안드로이드 개발 단계

아이디어 > 기획  개발 > 테스트 > 리리즈

설계 > 코드

좋은 설계에 집중하라.

설계

좋은 설계에 집중하라.
변경이 유연한 설계를 하라.
초반부터 성능을 고려하지 말라.
필요한 기능에 집중하라.

설계시 꼭 지켜야 할 5가지
 1. UI 스레드는 UI만 처리하게 하라.
 2. 사용자를 방해하지 말라.
 3. 다양한 화면 해상도를 지원하라.

 1) wrap_content, fill_parent와 DIP를 사용하라.

  layout_width="100dip"

  = 100 pixels on a HVGA@160 density
  = 150 pixels on a WVGA@240 density

 * 사용자가 보기에는 거의 동일한 크기로 보여짐.

 2) AbsoluteLayout을 사용하지 말아라.
  1.5에서 deprecated된 클래스
  *FrameLayout과 이 레이아웃의 layout_margn 속석으로 동일한 
  화면을 구성할 수 있음.

 3) 코드에서 픽셀로 크기를 지정하지 말아라.
   안드로이드는 내부적으로 픽셀을 기본 단위로 사용

  * 필요하다면 DIP를 PIXEL로 변경해야 함.

 4) 화면 해상도에 맞게 다양한 리소스를 제공하라.

  * 다양하게 제공할수 없을 경우에는 HDPI를 제공함.
  
  텍스트를 지정할 때 사용해야 하는 단위는?

  SP : 사용자 설정에 따라 텍스트 크기 변경됨.
  (Scale-independent pixel)

  DP : 사용자 설정에 따라 텍스트 크기 변경되지 않음.
  (Density-independent pixel)

 4. 네트웍크는 항상 느리다고 가정하라.

 5. 다양한 하드웨어에 대비하라.
  처티스크린
  키보드
  센서

  좋은 코드를 작성하라.

  모바일 기기에서 어떤 코드가 좋은 코드일까?

   CPU 낮고, 메모리 낮고, 가독성 높은.
  
  코드
  
  좋은 코드를 작성하라.
  필요한 기능을 최대한 간결히 작성하라.
  클래스/메소드/변수 이름을 명확히 하라.
  코드르 어렵게/복잡하게 작성하지 말아라.

  코드 작성시 알아둬야 할 10가지
  1. 객체는 최대한 적게 생성하라.
   static 메소드를 사용해서 객체 생성을 줄일 수 있다.
   반복문에서는 객체 생성을 중여야 한다.
   객체를 재사용한다.
   
   int myNum = Integer.valueOf("123").intValue();
   
   int myNum = Integer.parseInt("123");
   
   String result = "";
   for(int i = 0; i < 10; i++){
    String temp = new String("" + i);
    result += temp;
   }
   
   StringBuffer result = new StringBuffer();
   
   for(int i = 0; i < 10; i++){
    result.append("" + i);
   }
  ================================= 
   StringBuffer total = new StringBuffer();
   total.append("PRE");
   //....
   total = new StringBuffer();
   total.append("AFTER");
   
   StringBuffer total = new StringBuffer();
   total.append("PRE");
   //....
   total.setLength(0);
   total.append("AFTER");
   
  2. 불필요한 코드는 제거하라.
   쓸데없는 캐스팅을 줄여야 한다.
   
   for(int i = 0; i < vect.size(); i++){
    if(((String) vect.get(i)).equals("1")){
     //처리
    } else if(((String) vect.get(i).equals("2")){
     //처리 
    } else if(((String) vect.get(i).equals("3")){
     //처리
    }
   } 
  ================================= 
   String val = null;
   
   for(int i = 0; i < vect.size(); i++){
    val = (String) vect.get(i);
    
    if(val.equals("1")){
     //처리
    } else if(val.equals("2")){
     //처리
    } else if(val.equals("3")){
     //처리
    }
   }   
   
   
   
  3. 구현타입을 사용하라.
   List list1 = new ArrayList();
   
   ArrayLists list1 = new ArrayList();
 
  4. 메소드는 정적 메소드로 선언하라.
   class State{
    int currentNum;
    
    public int getMaxNum(){
     return 100;
    }
   } 
  
   class State{
    int currentNum;
    
    public static int getMaxNm(){
     return 100;
    }
   } 
  
  
  5. 클래스 내에서는 Getter와 Setter 를 사용해서 변수에 접근하지 말아라.
   getAge() -> age
   
   class Person{
    int age;
    
    private int getAge(){
     return age;
    }
    
    public int getPersonAge(){
    if(getAge() <0) return 0;
    else return getAge();
    }
   }
  ================================= 
   class Person{
    int age;
    
    public int getPersonAge(){
     if(age < 0) return 0;
     else return age;
    }
   }
   
  6. 값이 고정된 변수는 상수로 선언하라.
   static in intVal = 42;
   static final int intVal = 42;
   
  7. enum은 되도록 사용하지 말아라.
   class WINTER{
    private final int num;
    
    private WINTER(int num){
     this.num = num;
    }
    
    public int getNum(){
     return num;
    }
   }
   
  8. 부동소수형은 되도로 사용하지 말아라.
   부동소수형   정수형
   float     int
   dougle    long
   
  9. 네이티브 코드는 되도록 사용하지 말아라.
   JNI - Java Native Interface
   자바에서 C/C++를 호출하기 위한 메커니즘
   
   자바보다 더 나은 속도를 위해 사용됨.
   하드웨어를 제어하는 용도로 사용됨.
   
   디바이스에 따라 호환되지 않을 수 있음.
   디버깅을 하는 것이 쉽지 않음.
   
  10. 자바의 코드 노하우가 반드시 안드로이드의 코드 노하우는 아니다.
   가독성을 위해 중첩 클래스를 사용하지 마라.
   클래스는 되도록 작게 생성하라.
 
오늘의 내용을 한 마디로 정리하자면.....
 작은 차이가 큰 차이를 만듭니다.

블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Visual C++ 2005 단축키
단축키
설명
Ctrl + Shift + N
프로젝트 새로 만들기
Ctrl + N
파일 새로 만들기
Ctrl + Shift + O
프로젝트/솔루션 열기
Ctrl + O
파일 열기
Ctrl + S
저장
Ctrl + Shift + S
모두 저장
Ctrl + P
인쇄
 
 
Ctrl + Z
Undo
Ctrl + Y
Redo
Ctrl + X
Cut
Ctrl + C
Copy
Ctrl + V
Paste
Ctrl + Shift + Ins
클립보드 링 순환
Del
Delete
Ctrl + A
Select All
Ctrl + F
Find
Ctrl + H
Replace
Ctrl + Shift + F
파일에서 찾기
Ctrl + Shift + H
파일에서 바꾸기
Ctrl + Shift + Y
기호 찾기
Ctrl + G
Go To
 
 
Ctrl + K, Ctrl + F
선택 영역 서식
Ctrl + Shift + U
대문자로
Ctrl + U
소문자로
Ctrl + K, Ctrl +
가로 공백 삭제
Ctrl + R, Ctrl + W
공백 보기
Ctrl + E, Ctrl + W
자동 줄 바꿈
Ctrl + I
증분 검색(Incremental Search)
Ctrl + K, Ctrl + C
선택 영역을 주석으로 처리
Ctrl + K, Ctrl + U
선택 영역의 주석 처리 제거
 
 
Ctrl + K, Ctrl + K
책갈피 설정/해제
Shift + F2
이전 책갈피
F2
다음 책갈피
Ctrl + K, Ctrl + L
책갈피 지우기
Ctrl+Shift+K, Ctrl+Shift+P
폴더의 이전 책갈피
Ctrl+Shift+K, Ctrl+Shift+N
폴더의 다음 책갈피
Ctrl + K, Ctrl + H
작업 목록 바로 가기 추가
 
 
Ctrl + M, Ctrl + H
선택 영역 숨기기
Ctrl + M, Ctrl + M
개요 확장/축소
Ctrl + M, Ctrl + L
전체 개요 표시/숨기기
Ctrl + M, Ctrl + P
개요 표시 중지
Ctrl + M, Ctrl + U
현재 숨기기 중지
Ctrl + M, Ctrl + O
정의 부분만 보이기
 
 
Ctrl + J
멤버 목록
Ctrl + Shift + SpaceBar
매개 변수 목록
Ctrl + K, Ctrl + I
요약 정보
Alt + 
단어 자동 완성
 
 
Ctrl + Alt + 0
코드
Ctrl + Alt + L
솔루션 탐색기
Ctrl + K, Ctrl + W
책갈피 창
Ctrl + Shift + C
클래스 뷰
Ctrl + Shift + V
코드 정의 창
Ctrl + Alt + J
개체 브라우저
Alt + 2
출력
Ctrl + Shift + E
리소스 뷰
Ctrl + Alt + X
도구 상자
Shift + Alt + Enter
전체 화면
Ctrl + -
뒤로 탐색
Ctrl + Shift + -
앞으로 탐색
 
 
Ctrl + Alt + Y
기호 찾기 결과
 
 
Ctrl + Alt + A
명령 창
Ctrl + Alt + D
문서 개요
Ctrl + , Ctrl + E
오류 목록
Alt + Enter
속성 창
Ctrl + Alt + S
서버 탐색기
Ctrl + , Ctrl + T
작업 목록
Ctrl + Alt + R
웹 브라우저
 
 
Ctrl + Shift + A
새 항목 추가
Shift + Alt + A
기존 항목 추가
Alt + F7
속성
 
 
F7
솔루션 빌드
Ctrl + Alt + F7
솔루션 다시 빌드
Ctrl + F7
컴파일
 
 
Alt + F9
중단점 창 보이기
Ctrl + Alt + I
직접 실행 창 보이기
 
 
F5
디버깅 시작
Shift + Alt + F5
응용 프로그램 검증 도구로 시작
Ctrl + F5
디버깅하지 않고 시작
Ctrl + Alt + E
예외
F11
한 단계씩 코드 실행
F10
프로시저 단위 실행
F9
중단점 설정/해제
Ctrl + Shift + F9
모든 중단점 삭제
 
 
Ctrl + B
함수에서 중단
 
 
Ctrl + Alt + P
프로세스에 연결
Ctrl + K, Ctrl + B
코드 조각 관리자
 
 
Ctrl + Shift + P
TemporaryMacro 실행
Ctrl + Shift + R
TemporaryMacro 저장
Alt + F11
매크로 IDE
 
 
Ctrl + F1
어떻게 할까요?
Ctrl + Alt + F3
검색
Ctrl + Alt + F1
목차
Ctrl + Alt + F2
색인

블로그 이미지

By훈트

,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

화면 가로/세로 고정하기

 

AndroidManifest.xml에서

<activity android:name=".challenge"
     
android:label="@string/app_name"
     
android:screenOrientation="portrait">
     <intent-filter>
         
 <action android:name="android.intent.action.MAIN" />
          
<category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

 

<activity>안에서 android:screenOrientration 값을 넣어주시면 됩니다.

가로 = landscape

세로 = portrait

블로그 이미지

By훈트

,