Posted by hopi
,

표현식은 다음과 같다.


select * from [TABLE NAME A] where [구분 컬럼] not in (select [구분 컬럼] from [DBNAME].[소유자].[TABLE NAME B]


해당 쿼리를 실행할 때 수행자가 다 권한이 있어야 하며 (당연하겠지만) 위의 예제는 TABLE NAME A가 속한 DB에서 명령을 수행한다고 가정하도록 한다.

Posted by hopi
,

row count를 측정할 때 기본적으로 테이블에서 갯수를 측정하기 위해서는 다음을 사용한다. (MSSQL용)


select count(*) from [tablename]


그러나 system index를 이용하면 직접 엑세스를 하지 않고 구할 수 있다.


select rowcnt from sysindexes where id = object_id('[tablename]') and indid in (0, 1)


Posted by hopi
,

// 인증서가 물려 올라오는지 확인하는 sp

sp_readerrorlog 0, 1,'certificate'


// SPN 등이 등록 되었는지 확인하는 SP

sp_readerrorlog 0, 1,'register'



Posted by hopi
,

음.. 계속 사용 할 수록 VI가 참 매력적이다.
어쨌거나...


일단, 이번에는 활용하기 참 좋은 marking 기능에 대해 알아보도록 하자.

가장 먼저 알아두어야 할 것은 Ctrl + ] / Ctrl + O / Ctrl + I 이다.


먼저 Ctrl + ]의 경우 점프를 할 수 있는 곳으로 점프를 하게 된다.

특히나 Visual Studio 같은 경우에는 특정 스트럭쳐, 함수 등의 선언, 정의 등으로 이동할 수 있어 무척 좋다.


이후에 활용하는 것이 바로 Ctrl + O / Ctrl + I 인데.. O의 경우 'Old'를 의미하고 기억하기 쉬우라고 'I'는 New를 의미하게끔 하였다. 짐작하듯 바로 이전 위치로 jump, 그리고 다시 그 위치로 jump 등을 의미한다.

점프를 계속 하다가 보면 다시 원래 자리로 돌아가고 싶은 경우가 있는데, 그때 바로 Ctrl + I를 활용하면 되겠다.


이 외에도 Marking 기능이 있는데 명령어로 그냥 m을 친 후 a~z까지 입력을 하면 해당 위치에 눈에 보이지 않는 마크가 생성된다.

호출하기 위해서는 '를 입력한 후 a~z를 입력하면 된다.


이외에도 점프를 하기 위해 가장 좋은 것은 *와 #이 있겠다.

같은 파일 내에서 찾기 위한 것인데, 전체 파일에서 찾기 위해서는 뭐 Ctrl + Shift + f (Visual Studio 기본기능)을 눌러 찾으면 되니 뭐 편한대로 쓰면 된다.


못참고 중고장터를 기웃거리고 있음. 해피해킹 프로.. ㅠㅠ

Posted by hopi
,

viemu.. Visual Studio 사용자에게 vim을 활용하기 위한 최고의 툴이다.
다만.. 가격이 너무 세다.. ㅠㅠ
이번 기회에 vi에 대해서 조금 정리를 해 본다.

입력 명령어

a 커서 위치 다음 칸 부터 입력
A 커서 행의 맨 마지막부터 입력
i 커서 위치에서부터 입력
I 커서 행의 맨 앞에서부터 입력
o 커서의 다음 행에 입력
O 커서의 이전 행에 입력
s 커서 위치의 한 글자를 지우고 입력
S 커서 위치의 한 행을 지우고 입력
cc 커서 위치의 한 행을 지우고 입력


이동 명령어

0 현재 행의 맨 처음으로 이동
$ 현재 행의 맨 마지막으로 이동
h 왼쪽 이동
j 아래쪽 이동
k 윗쪽 이동
l 오른쪽 이동
0 문장의 맨 끝으로 이동
$ 문장읨 처음으로 이동
+ 다음 행의 첫 글자로 이동
w 다음 단어의 첫 글자로 이동
e 현재 혹은 다음 단어의 끝으로 이동
b 이전 단어의 끝으로 이동
- 이전 행의 첫 글자로 이동
+ 다음 행의 첫 글자로 이동
( 이전 문장의 첫 글자로 이동
) 다음 문장의 첫 글자로 이동
{ 이전 문단의 첫 글자로 이동
} 다음 문단의 첫 글자로 이동
H 커서를 화면의 맨 위로 이동
M 커서를 화면의 중앙으로 이동
L 커서를 화면의 맨 아래로 이동
z<CR> 현재 행을 화면의 맨 위로 이동
ctrl + d 반 화면 아래로 스크롤
ctrl + f 한 화면 아래로 스크롤
ctrl + u 반 화면 위로 스크롤
ctrl + b 한 화면 위로 스크롤
:[n] n 행으로 이동
gg 문서의 첫 행으로 이동
G 문서의 맨 마지막 행으로 이동

사실 위에 두 가지의 입력만 자유자재로 하다 보면 vi를 정말 편하게 쓸 수 있다.
다음에 나오는 명령어는 그냥 위에것이랑 합치기만 하면 되는 쉬운 명령어이기 때문이다.

x 단어 삭제
r 단어 치환
d 삭제 (단일명령 아님)
dd 한 줄 삭제
y 복사
yy 한 줄 복사
v visual (selection) 모드

V
Ctrl + q


visual line 모드
visual block 모드



여기에 언급되지 않은 것 중에서 y, d랑 같이 쓸 수 있는 aw, iw 등이 있다.
바로 알 수 있듯, yaw 라고 하면 한 단어를 카피(yanking)하는 것이고, daw 하면 한 단어를 삭제하는 식이다.

다만 aw는 스페이스까지 포함하지만, iw는 단어만 선택해서 처리된다.
이러한 명령어들은 위의 y, d, v 등에 다 적용된다.

* 단어 검색 (아래로)
# 단어 검색 (위로)
n 정방향 검색
N 역방향 검색
/[chars] 입력 단어 검색

이 외에도 몇 가지 기능이 있다.
검색 중 복사(yanking)된 단어를 검색할 경우 '/'를 입력한 후 ctrl + r을 두 번 누르는 것이다.

참, 가장 중요한 u, ctrl + r이 빠졌다.
undo/redo 기능이다. (command 입력창의 ctrl + r과 같지만 기능은 전혀 틀림)


위에 나열 된 명령어만 가지고 에디팅을 하다가 보면 아예 마우스에 손을 올리지 않고도 모든게 다 에디팅이 가능 해 진다. 얼마나 멋진 툴인지..

물론, 해피해킹 프로 키보드를 갖고 싶다는 열망에 폭주하게 될 지도 모르니 적당히 즐기시길...

Posted by hopi
,
java에서 datetime 변환하는게 그리 쉽지만은 않다. DB Parameter insert를 테스트 해야 하는데, 아무튼 좀 골치다.
기본적으로는 아래의 방법을 쓰면 sqlDate가 삽입이 된다.
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);

이후에 이렇게 하면 수행이 된다. (pstmt는 preparedstatement)
pstmt.setDate(1, sqlDate);
pstmt.executeQuery();

그렇다면, 특정 값을 삽입하고 싶다면?
Date date = null;
try {
	String str_date="2010-07-09T12:50:58";
	DateFormat formatter ; 

	formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
	date = (Date)formatter.parse(str_date);
} catch (ParseException e) {}

java.sql.Date sqlDate2 = new java.sql.Date(date.getTime());
Posted by hopi
,
Posted by hopi
,

요거 자꾸 까먹어서, 여기에 적어놓는다.


        
char str[] = "여기에, 사는사람-누구";
char* pch;

// token 파싱된앞문자열, context 남은문자열
char* context = NULL;
char* token = strtok_s(str, ",", &context);		
pch = strtok(str, ",.-");
	
while(token)
{
	token = strtok_s(NULL, ",", &context);		
}
Posted by hopi
,

이거 꼭 잊어먹어서 헤맨다.

HKEY_CURRENT_USER

Software

Microsoft

Windows

CurrentVersion

Explorer

User Shell Folder


요 레지스트리 경로 잊어먹지 말고 처리 해 주면 된다.

해당 사용자만 변경이 되므로.. 알아서 할 것.

Posted by hopi
,