1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 총 페이지 구하기
select CEILING(count([mail_id])/30.0from MailBox
where limit_time > getdate() and [to] = 13400
 
 
-- 요청 페이지 가져오기
DECLARE @page_no int = 1            -- 페이지 번호
DECLARE @page_row_count int = 28    -- 한 페이지 열 개수
 
SELECT SequenceNo, [from], [to], itemType, receiveType, receiveTime, expireTime from Mailbox
WHERE receive_time < getdate()-1 and expireTime > getdate() and [to] = 13400
ORDER BY expireTime DESC 
OFFSET (@page_no - 1* @page_row_count ROW FETCH NEXT @page_row_count ROW ONLY
 
-- OFFSET (@page_no - 1) * @page_row_count  // 페이지의 시작 번호
-- ROW FETCH NEXT @page_row_count ROW ONLY  // 페이지의 끝 번호

 

SSDT 정보 링크 (Microsoft)

개발자는 데이터베이스 개발에 익숙한 Visual Studio 도구를 사용할 수 있습니다. Transact-SQL 편집기에서는 C# 및 Visual Basic에 사용할 수 있는 기능과 유사한 코드 탐색, IntelliSense 및 언어 지원과 같은 도구, 플랫폼별 유효성 검사, 디버깅 및 선언적 편집 기능을 제공합니다. 또한 SSDT에서는 데이터베이스 프로젝트나 연결된 데이터베이스 인스턴스에서 테이블을 만들고 편집하는 데 사용할 수 있는 시각적 테이블 디자이너를 제공합니다. 팀 기반 환경에서 데이터베이스 프로젝트 작업을 수행하는 동안 모든 파일에 대해 버전 제어를 사용할 수 있습니다. 프로젝트를 게시할 때 SQL Database 및 SQL 서버를 포함하여 지원되는 모든 SQL 플랫폼에 게시할 수 있습니다. SSDT 플랫폼 유효성 검사 기능은 스크립트가 지정한 대상에서 작동하도록 해 줍니다.

Visual Studio의 SQL Server 개체 탐색기에서는 SQL Server Management Studio와 유사한 데이터베이스 개체의 뷰를 제공합니다. SQL Server 개체 탐색기를 사용하여 소규모 데이터베이스 관리 및 디자인 작업을 수행할 수 있습니다. 테이블, 저장 프로시저 및 함수를 손쉽게 만들고, 편집하고, 이름을 바꾸고 삭제할 수 있을 뿐 아니라, SQL Server 개체 탐색기에서 바로 상황에 맞는 메뉴를 사용하여 테이블 데이터를 편집하거나, 스키마를 비교하거나, 쿼리를 실행할 수도 있습니다.

 

SSDT Download 링크

 

SQL Server Data Tools | Visual Studio - Visual Studio

Visual Studio를 SQL Server, Azure SQL Database 및 Azure SQL Data Warehouse용 강력한 개발 환경으로 전환하세요. 지금 시작해 보세요.

visualstudio.microsoft.com

 


http://www.inputdirector.com/downloads.html

인풋다이렉트 프로그램 - 마우스 키보드 공유 


구글 검색기로 "mouse without borders"로 검색하면 micro soft 에서 제공하는 툴이 검색된다.




설치 후 Yes/No를 물어보는데 No를 하면 메인이되어 "인증코드"를 발급한다.

다른 PC에서는 "Yes" 선택하여 "인증코드"를 입력하면 [마우스/키보드]를 공유 받을 수 있다. (빨리 알았더라면 좋았을 소프트웨어이다.)


'Tools > Free Apps' 카테고리의 다른 글

[Tools] 이미지 편집 무료 어플 소개  (0) 2016.07.11
[Tools] NetBeans 개발툴 - 소개와 설치  (0) 2013.08.02



1
2
3
4
5
6
7
8
9
10
11
12
13
14
// BOM 추출하기
 
System.IO.FileStream fs = System.IO.File.OpenRead(xmlFilePath);
byte[] byteOrderMark = new byte[3];
fs.Read(byteOrderMark, 03);
 
if (byteOrderMark[0== 0xEF && byteOrderMark[1== 0xBB && byteOrderMark[2== 0xBF)
{
    // utf-8
}
else if (byteOrderMark[0== 0xFF && byteOrderMark[0== 0xFE)
{
    // utf-16
}
cs


'Languages > C#' 카테고리의 다른 글

[C#] Internal Property 접근하기  (0) 2016.03.23
[C#] InputBox 만들기  (0) 2014.01.21



1
2
3
4
5
6
7
8
9
10
11
12
catch (System.Xml.XmlException e)
{
    // Exception을 처리하려는데 Internal Property 로 접근이 필요한 상황이 되었다.
    // Internal Property : ResString
 
    // Reflection 옵션을 이용하여 Internal Property 의 접근을 요청한다.
    var t = e.GetType().GetProperty("ResString"System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
 
    // 저장된 값을 요청한다.
    string resString = (string)t.GetValue(e, null); 
}
 
cs


'Languages > C#' 카테고리의 다른 글

[C#] BOM 확인 (FileStream)  (0) 2016.03.23
[C#] InputBox 만들기  (0) 2014.01.21



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- IN Condition
 
-- first_name 컬럼에 IN 오른쪽의 단어를 포함하고 있는 rows를 출력합니다.
SELECT *
FROM employees
WHERE first_name IN ('Sarah''Jane''Heather');
 
 
-- NOT IN은 반대의 의미로 포함되지 않은 rows를 출력합니다.
SELECT *
FROM employees
WHERE first_name NOT IN ('Sarah''Jane''Heather');
 
 
-- /* WHERE first_name = 'Sarah' OR first_name = 'Jane' OR first_name = 'Heather' */
-- 위의 문장과 비교하여 선호하는 방향의 문법을 사용하면 된다.
cs


< Bitstream Vera Sans Mono + 맑은고딕 >

BitstreamVeraSansMono.ttf

  √ consolas 보다 가독성이 좋다. 진한 느낌이다.

  √ consolas 보다 글자 크기가 커졌지만 뷰에 보여지는 라인수가 달라지는건 아니다.



< FixedSys >

FSEX300.ttf


 foxlime_vs2005.vssettings


  √ 13인치 노트북에서 사용하기 딱 좋은 폰트이다. 굵은 글씨에 가독성도 좋다.
  √ 테마는 주로 사용했던 테마를 백업해 놓은 것이다.  



< 개인 설정한 테마 >

Darkness_User_20140407.vssettings




정규식은 처음 접하면 암호 같다. 하지만 복잡한 상황에 조건이 필요한 경우 사용하게 되면 간단하게 해결 되는 경우가 있다. 그러므로 정규식은 꼭 학습이 필요하다.

1
2
3
-- float이 아닌 value를 찾는 정규식.
SELECT * FROM TestDB WHERE type='float' and trim(value) NOT REGEXP '^[+-]?\d*(\.?\d*)$'
 
cs



MSDN 정규식 구문 링크


일치 항목

/^\s*$/

빈 줄을 찾습니다.

/\d{2}-\d{5}/

2자리 숫자, 하이픈 및 추가 5자리 숫자로 구성된 ID 번호의 유효성을 검사합니다.

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/

HTML 태그를 찾습니다.


'Databases > MS-SQL' 카테고리의 다른 글

[MS-SQL] 리스트 페이지 구하기  (0) 2020.03.23
[MSSQL] IN / NOT IN Condition  (0) 2016.03.10
[MS-SQL] 설치 버전 확인  (0) 2016.01.20
[MSSQL] lock 걸린 테이블 조회하기  (0) 2015.05.11
[MSSQL] 테이블 컬럼 존재 확인  (0) 2014.01.20

실행 중인 SQL Server 데이터베이스 엔진 버전 및 Edition을 확인하는 방법

SQL Server 버전을 확인하려면 다음 방법 중 하나를 사용할 수 있습니다.

방법 1: SQL Server Management Studio에서 개체 탐색기를 사용하여 서버에 연결합니다. 개체 탐색기가 연결되면 버전 정보가 괄호로 묶여 표시되고 해당 특정 SQL Server 인스턴스에 연결하는 데 사용된 사용자 이름이 표시됩니다.

방법 2: 해당 인스턴스에 대한 오류 로그 파일의 처음 몇 줄을 확인해봅니다. 기본적으로 오류 로그는 Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG 및 ERRORLOG.n 파일에 있습니다. 해당 항목은 다음과 비슷합니다.
2011-03-27 22:31:33.50 Server      Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)                 Mar 29 2009 10:11:52                 Copyright (c) 1988-2008 Microsoft Corporation                Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: )
알고 있는 것처럼 이 항목은 제품에 대한 모든 필수 정보(예: 버전, 제품 수준, 64비트/32비트, SQL Server Edition 및 SQL Server가 실행 중인 OS 버전)를 제공합니다.

방법 3: SQL Server 인스턴스에 연결하고 다음 쿼리를 실행합니다.
Select @@version
이 쿼리의 출력 예는 다음과 같습니다.

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: )


기본적으로 괄호 () 는 IF문 또는 FOR문을 사용할 때 C 언어에서의 중괄호 {} 와 동일한 형태로 사용한다.

하지만 괄호 () 를 C언어 사용하듯이 사용하면 에러를 만나게 된다.


1
2
3
4
5
6
7
8
9
10
11
 
:: 정상 코드
IF "%ERRORLEVEL%" == 0  ( 
    echo 0이면 true라는 소리이다.
)
 
::잘못된 코드
IF "%ERRORLEVEL%" == 0  ( 
    echo 0이면 ( true )라는 소리이다.
)
 


잘못된 코드에서 괄호를 사용했는데 ) 괄호를 만나면 IF문이 닫힙니다로 해석되어 에러를 뿜어낸다.

[ 에러은(는) 예상되지 않았습니다. ]


echo는 C언어에서 std::cout, std::printf와 유사한데 여기에서 어떤 문장을 집어 넣어도 "" 큰 따옴표가 방어 역할을 수행한다. 하지만 echo는 그렇지 못하므로 주의하여 사용해야 한다.

'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
:: 문장을 파싱할 때 사용하는 방법
:: tokens는 몇번째 내용을 가져올 것인가를 지정하는 숫자이다. (1부터 시작)
:: delims는 어떤 기준으로 문장을 분리할 것인지에 대한 기준이다.
 
set sentence= aaa-bbb-ccc-ddd
FOR /F "tokens=2 delims=-" %%i in ("%sentence%") do echo token = %%i
 
 
 
:: 파일을 파싱할 때 사용하는 방법
:: usebackq는 FileName을 ( ' )작은 따옴표로 감싸면 문장으로 인식하고
:: ( " )큰 따옴표로 감싸면 파일로 인식하기 위한 옵션이다.
 
FOR /F "usebackq tokens=2 delims=-" %%i in ('%SentenceName%') do echo token = %%i
 
FOR /F "usebackq tokens=2 delims=-" %%i in ("%FileName%") do echo token = %%i
 
 
 
:: tokens를 여러 개 만들고자 할 때
:: delims로 나열된 파싱 단어들의 숫자를 지정해주면 i, j, k, l에 순서대로 전달된다.
 
set sentence= aaa-bbb-ccc-ddd
FOR /F "tokens=1,2,3,4 delims=-" %%i in ("%sentence%") do echo token = %%i, %%j, %%k, %%l
cs


for문을 사용할 때는 문장과 파일을 명확히 구분할 필요가 있다.
자세한 사용법은 CMD 실행하고 for /?로 살펴보기.


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] 괄호() 사용시 주의 사항  (0) 2015.10.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
IF "%ERRORLEVEL%" == 0  ( 
    echo 0이면 true라는 소리이다.
)
IF "%ERRORLEVEL%" NEQ 0  ( 
    echo 0이 아니면 true라는 소리이다.
)
 
set name=FoxLime
IF "%name%" == "Foxlime" (
    echo 대소문자 구분하여 문자열을 비교한다.
)
IF  /i "%name%" == "Foxlime" (
    echo 대소문자 구분 없이 문자열을 비교한다.
)
 
IF "%rootPath%" == "C:\" (
    echo C:\ true.
) ELSE IF "%rootPath%" == "D:\" (
    echo D:\ true.
)
 
 
IF %UserLevel% == 1 IF %Character% > 2 (
    echo IF문에서 &&(and)를 표현하는 식이다.  
)
 
SET IsBool=false
IF %UserLevel% == 1 SET IsBool=true
IF %Character% > 2 SET IsBool=true
IF /i "IsBool" == "true" (
    echo IF문을 ||(or)를 표현하는 식이다.
)
 
cs


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] 괄호() 사용시 주의 사항  (0) 2015.10.21
[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
 
:: call과 goto는 실행하는 동작이 다르다.
:: call은 :Test를 현재 위치로 불러와 처리하고 다음 라인 처리를 진행한다.
:: goto는 :Test 위치로 이동하여 처리한다.
 
call :Test
goto :Test
 
exit /b 0
 
:Test
echo you called Test
exit /b 0
cs



'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] 괄호() 사용시 주의 사항  (0) 2015.10.21
[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET CurrentPath=%CD%
 
:: 0의 위치부터 시작하여 3글자를 잘라 저장한다.
SET RootPath=%CD:0,3%
 
:: parameter
SET param0=%~0
SET param1=%~1
 
:: save file about paths
(
echo CurrentPath=%CurrentPath%
echo RootPath=%RootPath%
)>"path.dat"
 
 
cs


변수는 SET으로 선언되며 Value를 사용하려면 %로 감싸야 한다.


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] 괄호() 사용시 주의 사항  (0) 2015.10.21
[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21

게임 아이템이 붙은 옵션 또는 속성 값을 bool로 사용하면 된다가 보통의 생각이다.

bool을 sizeof로 측정하면 1Byte = 8bit 값이 나오는데 필요한건 1bit를 표현하기 위해 사용하고 있는 값은 1Byte인것이다. 7bit는 낭비로 보이게 마련이다. 이와 같은 경우 선배님들의 해결법은 바로 비트 연산을 이용하는 것이다.


예를 들어 "NPC에게 판매불가, 버리기 불가, 거래 불가" 등등의 속성들 설정할 때 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
typedef unsigned int UINT;
 
// 시프트 연산을 이용하여 해당하는 자리에 비트를 넣어준다.
enum ITEM_ATTRIBUTE
{
    SELL_SHOP    = 1 << 0, // 상점 판매 유무
    THROW_OUT    = 1 << 1, // 버리기 유무
    ITEM_ATTRIBUTE_MAX    = 1 << 32,
};
 
int main()
{
    UINT itemAttr = SELL_SHOP;
    std::cout << static_cast<UINT>(itemAttr & SELL_SHOP) << std::endl;
    std::cout << static_cast<UINT>(itemAttr & THROW_OUT) << std::endl;
 
    UINT itemAttr = SELL_SHOP | THROW_OUT;
    std::cout << static_cast<UINT>(itemAttr & SELL_SHOP) << std::endl;
    std::cout << static_cast<UINT>(itemAttr & THROW_OUT) << std::endl;
    return 0;
}
cs

(itemAttr & SELL_SHOP)으로 확인하면 해당 비트가 1의 상태면 0보다 큰 숫자를 반환하고 

비트가 0의 상태면 0을 반환한다.

Quick Open File은 visual studio 확장 기능을 설치 해야지만 사용할 수 있는 기능이다.

Ctrl + K , Ctrl + O 단축키를 사용한다.

 https://visualstudiogallery.msdn.microsoft.com/3eb2f230-2728-4d5f-b448-4c0b64154da7




Visual Assist X 가 설치되어 있다면 위의 확장 기능을 설치하지 않고 사용이 가능하다.

 http://docs.wholetomato.com/default.asp?W193

Alt + Shift + O 단축키를 사용한다.


테이블 락 (TABLE LOCK) 걸린 경우 정보 검색이 필요하다면 사용하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
EXEC  sp_lock
 
==============================================================
-- sp_lock으로 검색해보면 ObjId가 존재하는데 조건문에 넣어주면 된다.
 
SELECT * FROM sysobjects WHERE  id = ObjId
 
==============================================================
-- Lock 걸린 spid 조회하기
DBCC  inputbuffer(spid)
 
==============================================================
-- Lock 걸린 spid 종료하기
KILL  spid
 
cs


1) IIS Install


2) IIS 확인

시작 --> IIS(인터넷 정보 서비스) 관리자 --> 실행


--> 시작을 할 수 없다면 기본 제공 포트(80)을 다른데에서 사용하고 있는지 확인이 필요하다.

--> 웹 서비스 제공할 때 자체적으로(코드) 포트를 막는 경우가 있으므로 서비스 시작을 했는데 웹이 안뜬다면 포트 변경을 1회 시도 해볼 필요는 있다.



'OS > WINDOWS' 카테고리의 다른 글

[Windows] 원격 데스크톱 실행  (0) 2012.12.26
[Windows] Network IP 충돌 현상 검사  (0) 2012.12.12
[Windows] NETWORK 열린 포트 확인  (0) 2012.08.22

원문 링크 : http://msdn.microsoft.com/ko-kr/library/yakksftt.aspx


문자열을 정수로 변환합니다. 이러한 기능의 더 안전한 버전을 사용할 수 있습니다. _itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s를 참조하십시오.

char *_itoa(
   int value,
   char *str,
   int radix 
);
char *_i64toa(
   __int64 value,
   char *str,
   int radix 
);
char * _ui64toa(
   unsigned _int64 value,
   char *str,
   int radix 
);
wchar_t * _itow(
   int value,
   wchar_t *str,
   int radix 
);
wchar_t * _i64tow(
   __int64 value,
   wchar_t *str,
   int radix 
);
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t *str,
   int radix 
);
template <size_t size>
char *_itoa(
   int value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
char *_i64toa(
   __int64 value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
char * _ui64toa(
   unsigned _int64 value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _itow(
   int value,
   wchar_t (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _i64tow(
   __int64 value,
   wchar_t (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t (&str)[size],
   int radix 
); // C++ only

value

변환될 수 있는 숫자

str

문자열 결과

radix

다음 value의 기본은; 범위 2–36에 있어야 합니다.

각 함수들은 str에 포인터를 반환합니다. 반환되는 오류가 없습니다.

다음 _itoa_i64toa, 및 _ui64toa 함수는 주어진 value 인수의 자리를 는 null로 끝나는 문자열로 변경하고, str에서 결과( _itoa 에 대한 최대 33, _i64toa 에 대한 65 및 _ui64toa)를 저장합니다. 만일 radix이 10 및 value 가 음수이면 저장된 문자열의 첫 문자는 빼기 기호 ( – )입니다. 다음 _itow_i64tow, 및 _ui64tow 는 각각 _itoa_i64toa, 및 _ui64toa의 와이드 문자 버전입니다.

보안 정보 보안 정보

버퍼 오버런을 방지 하기 위해 , str 버퍼가 변환된 숫자와 후행 null 문자 및 기호 문자를 저장 하기에 충분 한지 확인해야 합니다.

C++에서 이러한 함수는 보다 최신의 보안 대응 함수를 호출하는 템플릿 오버로드를 갖고 있습니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_itot

_itoa

_itoa

_itow

_i64tot

_i64toa

_i64toa

_i64tow

_ui64tot

_ui64toa

_ui64toa

_ui64tow

루틴

필수 헤더

_itoa

<stdlib.h>

_i64toa

<stdlib.h>

_ui64toa

<stdlib.h>

_itow

<stdlib.h>

_i64tow

<stdlib.h>

_ui64tow

<stdlib.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

// crt_itoa.c
// compile with: /W3
// This program makes use of the _itoa functions
// in various examples.

#include <string.h>
#include <stdlib.h>

int main( void )
{
   char buffer[65];
   int r;
   for( r=10; r>=2; --r )
   {
     _itoa( -1, buffer, r ); // C4996
     // Note: _itoa is deprecated; consider using _itoa_s instead
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _i64toa( -1L, buffer, r ); // C4996
     // Note: _i64toa is deprecated; consider using _i64toa_s
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _ui64toa( 0xffffffffffffffffL, buffer, r ); // C4996
     // Note: _ui64toa is deprecated; consider using _ui64toa_s
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
}
기본 10:-1 (2 자)
기본 9:12068657453 (11 자)
기본 8:37777777777 (11 자)
기본 7:211301422353 (12 자)
기본 6:1550104015503 (13 자)
기본 5:32244002423140 (14 자)
기본 4:3333333333333333 (16 자)
기본 3:102002022201221111210 (21 자)
기본 2:11111111111111111111111111111111 (32 자)

기본 10:-1 (2 자)
기본 9:145808576354216723756 (21 자)
기본 8:1777777777777777777777 (22 자)
기본 7:45012021522523134134601 (23 자)
기본 6:3520522010102100444244423 (25 자)
기본 5:2214220303114400424121122430 (28 자)
기본 4:33333333333333333333333333333333 (32 자)
기본 3:11112220022122120101211020120210210211220 (41 자)
기본 2:1111111111111111111111111111111111111111111111111111111111111111 (64 자)

기본 10:18446744073709551615 (20 자)
기본 9:145808576354216723756 (21 자)
기본 8:1777777777777777777777 (22 자)
기본 7:45012021522523134134601 (23 자)
기본 6:3520522010102100444244423 (25 자)
기본 5:2214220303114400424121122430 (28 자)
기본 4:33333333333333333333333333333333 (32 자)
기본 3:11112220022122120101211020120210210211220 (41 자)
기본 2:1111111111111111111111111111111111111111111111111111111111111111 (64 자)


클래스 뷰 --> 해당 Dlg (CxxxxxxxDlg) 선택  

--> 속성 창 --> 재정의 클릭 --> PreTranslateMessage 생성


--> 처리 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BOOL CGDStressToolDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN)
    {
        switch(pMsg->wParam)
        {
        case VK_ESCAPE:
            if(AfxMessageBox(_T("툴을 종료하시겠습니까?"),MB_YESNO) == IDNO)
                return TRUE;
            break;
        case VK_RETURN:
            return TRUE;
        }
        
    }
    // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
 
    return CDialogEx::PreTranslateMessage(pMsg);
}





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        // InputBox 함수 구현.
        public DialogResult InputBox(string title, string promptText, ref string value)
        {
            Form form = new Form();
            Label label = new Label();
            TextBox textBox = new TextBox();
            Button buttonOk = new Button();
            Button buttonCancel = new Button();
            form.Text = title;
            label.Text = promptText;
            textBox.Text = value;
            buttonOk.Text = "OK";
            buttonCancel.Text = "Cancel";
            buttonOk.DialogResult = DialogResult.OK;
            buttonCancel.DialogResult = DialogResult.Cancel;
            label.SetBounds(9, 20, 372, 13);
            textBox.SetBounds(12, 36, 372, 20);
            buttonOk.SetBounds(228, 72, 75, 23);
            buttonCancel.SetBounds(309, 72, 75, 23);
            label.AutoSize = true;
            textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
            buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            form.ClientSize = new Size(396, 107);
            form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
            form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
            form.FormBorderStyle = FormBorderStyle.FixedDialog;
            form.StartPosition = FormStartPosition.CenterScreen;
            form.MinimizeBox = false;
            form.MaximizeBox = false;
            form.AcceptButton = buttonOk;
            form.CancelButton = buttonCancel;
            DialogResult dialogResult = form.ShowDialog();
            value = textBox.Text;
            return dialogResult;
        }
 
        private void ListView1DoubleClick(object sender, EventArgs e)
        {
            // InputBox 호출부 구현.
            string value = "0";
            if (this.InputBox("Enter values""Value :"ref value) == DialogResult.OK)
            {
                MessageBox.Show(value);
            }
        }


'Languages > C#' 카테고리의 다른 글

[C#] BOM 확인 (FileStream)  (0) 2016.03.23
[C#] Internal Property 접근하기  (0) 2016.03.23

테이블에 컬럼 검사 후 작업 수행을 하기 위해 IF문을 사용하는데 

보통의 경우 사용하는 쿼리는 다음과 같다.

-------------------------------------------------

SELECT * FROM T_BASE_NAME WHERE ID = 1111

IF @@ROWCOUNT <> 1

RETURN 1

-------------------------------------------------


IF NOT EXISTS 를 사용하면 다음과 같다.

-------------------------------------------------

IF NOT EXISTS (SELECT * FROM T_BASE_NAME  WHERE ID = 1111)

RETURN 1

-------------------------------------------------

테이블에 컬럼이 존재하는지 확인 후 없다면 RETURN 1을 수행하라.

1. FreeBSD 개요

  - URL : http://www.freebsd.org/

  - Documentation > handbook 안에 들어가 PC 정보를 확인 후 필요한 iso 파일을 다운로드 받는다.

    ( FreeBSD-9.1-RELEASE-amd64-dvd1.iso )


2. virtualBox - FreeBSD 생성

  - 가상 머신 만들기시 자신이 다운로드 받은 파일에 따라 아래와 같이 버전(bit)설정을 해주어야 한다.

  - 만약 버전 설정이 정상적이지 않는 경우 무한 Reboot을 경험하게 된다.


- 설정 정보는 사진을 참고하면 된다.



3. FreeBSD 설치 시작

- Enter 또는 1번키를 누르면 시작된다.

 

 

 

 - Key Mapping은 No 선택하고 패스.

 

 

 

 - 파티션 설정을 어떻게 할것인가라는 질문이다.  guided 방식이 default다.

 

 

 

 

 

 

 

 

 

 

 

 - 서버 시간 설정이다. UTC가 아니므로 No하고 아래의 화면을 띄운다.

 

 

 

 

 

 - User 생성하겠냐고 묻는다. root를 제외하고 생성하고 싶어 Yes했다.

 

 

 

 

 

 

 

 

 

 * 최종 설치 완료하고 Reboot 했는데 Install 화면이 나온다면 아래의 내용을 참고한다.

 

 

 

 

 노란색 폴더 그림을 클릭하고 다운로드 받은 CentOS6.4  iso 파일을 선택한다.

 

 

 

 디스크 테스트 검사인데 Skip해도 된다.

 

 특별한 저장 장치가 아니라면 Basic Storage Devices를 선택하면 된다.

 

 

 Configure Network를 미리 설정 가능하지만 여기에 설정하지 않아도 되므로 패스한다.

나중에 설정한 내용이 들어갈 예정.

 

 

 암호는 꼭 설정해주는게 좋다.

 

 파티션 설정에 관한 부분인데 생각해 놓은 설정이 없다면 하나에 모두 때려 넣어도 무방하다.

보통 OS 설치 공간, 데이터 공간 등등을 나누는 경우가 있는데 검색을 통해 알아보거나 실무를 통해 알고 설정하는게 좋다.

 

 

 최소 설치를 하고 나머지는 컴파일 방식으로 설치 예정이다.

 

 

 

 

1. Virtual Machine Install

Oracle VM site  :  www.virtualbox.org

 

2. Linux - CentOS 6.4 설치를 위한 virtualBox 설정

 

 

 

 메모리가 충분하다면 1GB 정도로 설정하면 좋다. 메모리가 충분하지 않다면 권장 사양을 따르면 된다.

 

 

 

특별한 설정을 하지 않는다면 Default로 VDI를 선택하여 설치하면 된다. 

 

동적 할당은 상황에 맞게 가상 디스크가 유동 관리가 되므로 특별하지 않는 상황이라면 동적 할당을 선택한다.

 

 

 

CentOS 설치할 준비가 끝난 것이다. 혹시 특별 설정이 필요하다면 별도의 자료를 찾아보자.

 

1. 암호가 설정 안되는 경우

   # mongo

MongoDB shell version: 2.4.1
connecting to: test
> _

===================================================================

  # mongo <db_name>

MongoDB shell version: 2.4.1
connecting to: <db_name>
> _

 

 

 

2. 암호가 설정된 경우

  # mongo -u<user_ID> -p

MongoDB shell version: 2.4.1
Enter password:  _

===================================================================

  # mongo <db_name> -u<user_ID> -p

MongoDB shell version: 2.4.1
Enter password:  _

 

 

 

두 개 예제의 다른 점은 MongoDB의 존재하는 DB에 직접 접근하느냐의 차이다.

 

'Databases > MongoDB' 카테고리의 다른 글

[MongoDB] Replica set  (0) 2013.08.12
[MongoDB] 관리툴 링크 알려주는 페이지  (0) 2013.05.09

Replica set of MongoDB is site about information  :  http://docs.mongodb.org/manual/replication/

 

1. 용어 정리

Replica - 복제

shard - 분산 저장할 때 사용되는 물리적 장비

sharding - 대용량 DB에서 분산 저장하는 기술

 

 

Replica set은 Replication(복제)된 서버가 여유로 가지고 있음을 의미한다. 즉, Master , Slave로 구성된 하나의 묶음을 의미한다. 구성하는 이유는 DB에 장애가 났을 경우 Slave를 Master로 대체하여 사용할 수 있으므로 유연한 대처가 가능하므로 묶음으로 구성하여 사용한다.

 

Replica Set은 Master, Slave로 주로 구성하지만 Arbiter(아비터)를 추가하는 경우도 존재한다. 아비터는 HeartBeat를 체크하는 역할을 하는데 Master가 고장 났을 때 Slave를 Master로 만드는 역할 수행을 한다.

 

Replica set은 다양한 구성 방법이 존재한다. 위에 링크된 주소로 들어가면 아래와 같은 정보들을 열람할 수 있다.

Replica Set Members
Presents the components of replica sets.
Replica Set Deployment Architectures
Presents considerations for planning replica set deployments.
Replica Set High Availability
Presents the details of the automatic recovery process with replica sets.
Replica Set Read and Write Semantics
Presents the semantics for targeting read and write operations to the replica set.
Replication Processes
Presents the mechanics of the replication process and related topics.

 

 

 

'Databases > MongoDB' 카테고리의 다른 글

[MongoDB] DB 접속하기  (0) 2013.09.03
[MongoDB] 관리툴 링크 알려주는 페이지  (0) 2013.05.09

웹 서버를 개발에 EditPlus 툴을 사용했으나 조금 불편함이 존재한 상태였는데 웹(SI)에서 NetBeans 툴을 보편적으로 많이 사용한다며 동료 개발자가 소개해 주었다.

 

EditPlus의 불편사항은 선언부, 정의부를 넘나들며 찾아 갈 수 없다. Find 명령에서는 필요한 모든 파일들을 다 열어 놓고 찾아야 하는 불편함이 대표적이다. 이외의 소소한 불편함은 지나칠 수 있었다.

 

NetBeans 다운로드 경로

https://netbeans.org/downloads/

 

Java SE Development Kit 7 Downloads 경로

http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen

 

 

▷ 설치 실행 순서

1. Java SE Development Kit 7

2. NetBeans

자바 기반으로 개발된 NetBeans이므로 위와 같이 Java JDK가 설치되어야 한다.

 

NetBeans의 단점이라면 폰트의 대한 문제점이 존재하는데 폰트는

[나눔고딕 코딩] 글꼴을 사용하면 말끔히 해결 가능하다.

http://dev.naver.com/projects/nanumfont/download

 

 

 

 

 

하나의 솔루션에 여러 개의 프로젝트가 존재하는 경우 디버그를 동시에 할 수 있는 방법은 다음과 같다.

 

프로젝트를 오른쪽 버튼(마우스)으로 클릭하고 [Debug]->[Start new instance]를 클릭하여 실행 

 

여러 개의 프로젝트를 위와 같은 방법으로 실행하면 동시에 디버그 가능하다.

 

 

여러 개 프로젝트들을 디버그 모드로 열어 놓고 디버그를 중지하고 싶은 경우 상단 메뉴에서

[Debug]->[Detach All]를 클릭하여 디버그 상태를 해제하면 된다.

참고로 모든 프로젝트를 디버그 모드를 해제한다는 사실을 기억하자.

'Tools > Visual studio' 카테고리의 다른 글

[VS] Fonts + Themes  (0) 2016.03.04
[visual studio] Quick Open File Tools  (0) 2015.05.12
[vs 2005 전용] Recent Projects 리스트 삭제 방법  (0) 2012.09.20

+ Recent posts