본문 바로가기

2015/0513

Stored Procedures Stored ProcedureDB 내부에 저장된 일련의 SQL 명령문들을 마치 하나의 함수처럼 실행하기 위해서 쿼리를 묶어둔것. 반드시 값을 리턴할 필요가 없다는 점에서 함수와 다르다. (stored function은 반드시 결과값 리턴해야함) DB를 하다보면 여러 쿼리를 같이 써야지만 원하는 기능을 수행할 수 있는 경우가 종종 발생하는데, 이때 일련의 동작을 묶어서 그리고 기존 함수의 유용한 기능들 (조건분기, 변수저장)을 포함시켜서 보다 유연하게 사용할 수 있도록 만들어둔 것이 stored procedure이다.장점과 단점DB 작업은 어쩃든 I/O다. 명령을 여러번 수행하면 그때마다 I/O를 수행하는데 부하가 걸린다. Stored Procedure는 DB(서버)에 저장하여 내부적으로 동작하기 때문에 .. 2015. 5. 9.
DB 연동하기 ODBCODBC는 윈도우에서 정해진 데이터베이스에 접근하는 표준 규격이다. ODBC는 SQL 표준 인터페이스에 근간을 두고 서로다른 데이터 베이스에 맞는 요청으로 자동 변환하여 사용할 수 있게 만들어 준다. 따라서 서로 다른 데이터 베이스의 API를 몰라도 ODBC 인터페이스에서 정해진 방식만 따라가면 그 데이터 베이스를 사용할 수 있다. 이를 위해 각 DB별로 별도의 모듈 및 드라이버가 필요하다. 대부분의 DBMS들이 ODBC를 지원하기 위한 드라이버를 제공하고 있다.ODBC에 DB 등록하기ODBC로 데이터베이스에 접근하기 위해서는, 사용하고자 하는 DBMS를 ODBC관리자에서 추가한 뒤에 사용해야 한다. 자세한 내용은 링크ODBC 준비하기DB에 연결하기 위해서 먼저 ODBC에 사용되는 핸들을 생성해야.. 2015. 5. 9.
Effective C++ chapter 6 2015. 5. 6.
Modern Effective C++ item 27 : Universal Reference 오버로딩의 대안들 Universal Reference 오버로딩의 대안들item 26에서 universal reference를 오버로딩하는 것의 문제점에 대해서 이야기했다. 하지만 universal 오버로딩 방식의 장점도 분명하다. 이 장에서는 그런 상황에 처했을때, 어떻게 곁가지 문제들을 회피하면서 원하는 기능을 수행할 수 있는지를 이야기 할 것이다.오버로딩 금지item 26의 logAndAdd 예시를 생각해보자. universal reference의 강력한 포용력(?)때문에 다른 오버로딩들이 씹혀버리는 불상사가 발생하였다. 그렇다면 그냥 오버로딩을 포기하는게 속편할 수 있다. logAndAddName 과 logAndAddNameIdx 같은 느낌의 이름으로 바꾸면 일차적으로 해결은 된다. 그런데 생성자는 어떻게 이름을 바.. 2015. 5. 6.