728x90

SQL Native Client(SNAC)은 SQL Server 2005에 새로이 추가된 Data Access Libary로 이해하면 됩니다.

간단히 말하면, SNAC은 OLE DB와 ODBC 모두를 지원하는데 사용하는 Stand-alone Data Access API입니다. Microsoft Data Access Components(MDAC)이 지원하는 기능에 더하여 새로운 기능을 지원하며, SQL OLE DB Provider와 SQL ODBC Driver를 하나의 Native Dynamic Link Library(DLL)로 결합시켰습니다.

SNAC은 응용프로그램에서 SQL Server 2005의 새로운 기능(MARS:Multiple Active Result Sets, UDT:User-Defined Types, XML Data Type) 등을 활용하는데 필요합니다.

OLE DB Provider와 SQL ODBC Driver를 하나의 라이브러리로 결합한 SNAC을 새로이 공급하는 이유는 MDAC의 제한이나 문제점을 해결하기 위한 것입니다. 현재 MDAC은 윈도우 운영체제의 컴포넌트로 제공됩니다. 따라서 MDAC 기반의 응용프로그램을 개발하고 유지보수하는데 운영체제 유지보수 체계와의 문제로 인하여, 설치, 배포, 업그레이드 등과 관련된 이슈와 문제점이 많습니다. SNAC이 제공은 이러한 이슈들을 MDAC과 분리하기 위한 것으로 이해할 수 있습니다.

SNAC은 SQL Server를 위한 ODBC와 OLE DB API만을 지원하고 SQL Server 릴리스와 서비스 팩에서만 업그레이드 됩니다. MDAC은 계속해서 SNAC을 포함하는 모든 드라이버/프로바이더릉 위한 핵심적인 Data Access Service를 지원하지만 윈도우 릴리스와 서비스 팩에서만 업그레이드 됩니다.

그렇다고 무조건 SNAC을 쓰라는 것은 아닙니다. 이미 구축되어 있는 응용프로그램을 SQL 2005의 새로운 특징들을 활용할 수 있도록 업그레이드하거나 새로문 COM-기반 또는 Native 응용프로그램을 개발할 때 사용하기를 권고하고 있습니다. SQL 2005의 새로운 특징들을 사용할 필요가 없다면, 기존의 OLE DB나 ODBC 코드로 충분합니다. 물론, 데이터 접근에 있어 관리되는 코드 기반으로 가고자 한다면, .Net Framework의 ADO.NET Data Access 클래스가 필요합니다.

from olapforum

[출처] SQL Native Client(SNAC)|작성자 시샵

728x90
728x90
C#

텍스트박스에 한글만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if((Char.IsPunctuation(e.KeyChar) || Char.IsDigit(e.KeyChar) || Char.IsLetter(e.KeyChar) || Char.IsSymbol(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
 

텍스트박스에 영어만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if(!(Char.IsLetter(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}

 private void textBox1_Leave(object sender, System.EventArgs e)
{
    Regex emailregex = new Regex(@"[a-zA-Z]");
    Boolean ismatch = emailregex.IsMatch(textBox1.Text);
    if (!ismatch)
    {
        MessageBox.Show("영문자만 입력해 주세요.");
    }
}

텍스트박스에 숫자만 입력하기

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if(!(Char.IsDigit(e.KeyChar)) && e.KeyChar != 8)
    {
        e.Handled = true;
    }
}

private void textBox1_Leave(object sender, System.EventArgs e)
{
    Regex emailregex = new Regex(@"[0-9]");
    Boolean ismatch = emailregex.IsMatch(textBox1.Text);
    if (!ismatch)
    {
        MessageBox.Show("숫자만 입력해 주세요.");
    }
}

음.. 이렇게 두번에 걸쳐 체크한 이유는 한글은 ProcessKey이기 때문에 KeyPress 이벤트가 일어나지 않기 때문입니다. 그렇기 때문에 텍스트박스에서 포커스가 벗어날때 정규식을 이용해 한번더 체크해줘야 합니다. 키값 8번은 백스페이스 값입니다.

[출처] [C#] TextBox에 한글, 영어, 숫자만 입력받기|작성자 좋은생각




ASP.NET

TextBox 에 입력되는 글자를 영어로 할건지, 한국어로 할건지에 대해 설정할때 사용할 수 있는 좋은 방법이 있네요.

1. 영문만 입력 : style="ime-mode:disabled;"

2. 한글/영문 선택 : style="ime-mode:auto;"

3. 기본 한글 입력 : style="ime-mode:active;"

4. 기본 영문 입력 : style="ime-mode:inactive;"

728x90
728x90

1. CLASSPATH

JSP에서 JDBC를 사용하여 PostgreSQL 데이터베이스에 접속하기 위해서는

Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(%DB 경로,%사용자계정,%사용자비밀번호);


와 같이 접속하게 됩니다.

이 때 Class.forName은 Class 이름을 통하여 Class를 불러오도록 하는 메쏘드로 CLASSPATH 즉 CLASS의 경로로서 지정된 경로에 있는 클래스 파일로부터 클래스를 불러오게 됩니다. CLASSPATH 는 일반 PATH 와는 달리 디렉토리 외에 파일을 지정할수도 있는데, 지정할수 있는 파일의 종류는 \*.jar, \*.zip 등이 있습니다. jar 파일은 class 파일을 묶어서 압축해 놓은 파일로, 이 파일을 CLASSPATH 에 추가 하게 되면 그 파일안에 class 파일을 모두 사용할수 있게 됩니다.

2. Solaris에서 CLASSPATH의 설정

Solaris에서 CLASSPATH의 설정은 다음과 같이 할 수 있습니다.

export CLASSPATH="$CLASSPATH:/usr/postgresql/8.2/jdbc/postgresql.jar"

다음 부팅 시에도 CLASSPATH 적용하고 싶다면

cat export CLASSPATH="$CLASSPATH:/usr/postgresql/8.2/jdbc/postgresql.jar" >> /.profile

등과 같이 .profile의 내용에 추가하여 다음에도 적용될 수 있도록 할 수 있습니다.

3. TOMCAT에서 CLASSPATH의 설정

보통 어플리케이션은 시스템에서 설정한 환경변수를 그대로 따르는 것이 일반적이지만 TOMCAT의 경우는 시스템에 설정된 CLASSPATH를 완전히 무시하는 것으로 되어 있습니다. 따라서 TOMCAT에서의 CLASSPATH 설정은 시스템에서의 환경변수 설정과 별개로 이루어져야 합니다.

TOMCAT에서의 CLASSPATH의 설정은 TOMCAT 설치 디렉토리 내 .../bin/catalina.sh 파일을 수정함으로써 할 수 있습니다.

...

# Add on extra jar files to CLASSPATH
if [ -n "$JSSE_HOME" ]; then
  CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
fi
CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar
CLASSPATH="$CLASSPATH:/usr/postgres/8.2/jdbc/postgres.jar"

...

다음과 같이 CLASSPATH에 postgres.jar 파일을 추가합니다.
tomcat을 재구동시키면 PostgreSQL 데이터베이스의 JDBC 드라이버인 "org.postgresql.Driver"를 이름을 통하여 불러서 사용할 수 있게 됩니다.

4. WEB-INF/lib 를 이용하는 방법

tomcat을 통해 서비스 되는 웹서비스의 홈디렉토리 아래에는 WEB-INF 라는 특수한 디렉토리가 있습니다. 이 디렉토리 아래에 lib 라는 폴더를 만들어놓고 jar 파일을 넣어두면 CLASSPATH에 경로를 추가하여 jar 파일을 등록하는 것과 마찬가지로 jar 파일을 사용할 수 있습니다.

cp /ust/postgres/8.2/jdbc/postgres.jar /usr/apache/s10ref/web/WEB-INF/lib/postgres.jar

하여 파일을 복사하고 apache를 재시작하면 CLASSPATH를 등록하여 사용한 것과 마찬가지로 "org.postgresql.Driver"를 사용할 수 있습니다.


위 내용은 아래 주소를 참고 하였습니다.
http://blogs.oracle.com/snoopy40/entry/jdbc_%EC%82%AC%EC%9A%A9%EC%9D%84_%EC%9C%84%ED%95%9C_classpath_%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
728x90
728x90

익스트림 프로그래밍(XP, eXtreme Programming) 규칙


조금씩, 하지만 자주 발표한다.
사이클을 반복해서 돌리면서 개발한다.
스펙에 없는 것은 절대 질어넣지 않는다.
테스트 코드를 먼저 만든다.
야근은 하지 마라. 항상 정규 일과 시간에만 작업한다.
기회가 생기는 족족 언제 어디서든 코드를 개선한다.
모든 테스트를 통과하기 전에는 어떤 것도 발표하지 않는다.
조금씩 발표하는 것을 기반으로 하여 현실적인 작업 계획을 만든다.
모든 일을 단순하게 처리한다.
두 명씩 팀을 편성하고 모든 사람이 대부분의 코드를 알 수 있도록 돌아가면서 작업한다.


몇 가지라도 지키면서 일하자.

728x90

'개발및업무 > 기타용어정리' 카테고리의 다른 글

코딩 풀이  (0) 2022.06.21
Document Object Model(DOM)  (0) 2012.06.29
윈폼과 웹폼의 차이  (0) 2011.11.01
인자 매개변수 차이  (0) 2011.06.28
728x90

인자( Argument ) 는 어떤 함수를 호출시에 전달돼는 값을 말하고
매개 형식 변수( Parameter ) 는 그 전달된 인자를 받아들이는 변수다.

여기서 포인트는 
인자는 값, 매개 형식 변수는 말 그대로 변수라는 점이다.

예를 들면 이런거지.

void Func( int A )
{
    int B = 0;
    printf("%d\n",A);
}

int main( int argc, char* argv[] )
{
    int MyAge = 31;
    Func( MyAge );
}

여기서 인자는 Func() 함수를 호출할때 전달돼는 MyAge 이고
Func() 함수 구현 부의 헤더 부( 함수이름, 반환값, 매개 변수 )의 int A 가 매개 형식 변수이다.

뭐 인자야 별거 없으니 이정도로 마무리 짓고
매개 형식 변수에 대해 조금만 더 깊이 들어가 봅시다. 

간단히 호출 스택 얘기부터 시작해봅시다.
이 호출 스택( 다른 말로 Activation Record )은 
함수를 호출할시 그에 대한 정보 유지 및 관리 용도로 사용돼는 일종의 자료구조다.

프로그램이 실행돼면 CPU가 PC( Program Counter : 현재 실행할 지점의 코드를 가르키는 역할 )를 이용해 
코드를 훑고 내려가는데 이때 함수 호출 부를 만났다면

호출된 함수의 정보를 유지하기 위해 스택 공간에 메모리를 할당하는데 
그 크기는 그 함수의 매개 변수와 함수 블록 내에서 선언된 지역 변수의 전체 크게에 의해 결정된다.
- 그 밖에 복귀 주소( Return Address : 호출된 함수가 종료될시 실행흐름( PC)이 돌아가야할 주소 )등이 
   이 호출스택에 들어간다.

그런 다음, 함수의 인자가 이미 앞서 할당됐던 매개 변수에 대입된다.
- 매개 변수에 인자가 어떤 순서로 대입돼는지는 호출 규약에 따른다.

결론은 매개 형식 변수의 성질은 사실 지역 변수와 동일하다는 거다.
-물론 인자는 못 받겠지만.

728x90

'개발및업무 > 기타용어정리' 카테고리의 다른 글

코딩 풀이  (0) 2022.06.21
Document Object Model(DOM)  (0) 2012.06.29
윈폼과 웹폼의 차이  (0) 2011.11.01
익스트림 프로그래밍(XP) 규칙  (0) 2011.06.28

+ Recent posts