목록2017/06 (38)
C#,Delphi,Oracle,MSSQL 개발자블로그
트리거 본문을 코딩하기 전에 트리거의 구성 요소를 결정해야 한다. 시스템 이벤트에 대한 트리거는 데이터베이스 또는 스키마 레벨에서 정의할 수 있다. 예를 들어, 데이터베이스 종료 트리거는 데이터베이스 레벨에서 정의하며 DDL 문의 트리거 및 사용자 로그온 / 로그아웃 데이터베이스 레벨 또는 스키마 레벨에서 정의할 수 있다. DML문의 트리거는 특정 테이블 또는 뷰에서 정의한다. 데이터베이스 레벨에서 정의한 트리거는 모든 사용자에 대해 실행되지만 스키마 레벨이나 테이블 레벨에서 정의한 트리거는 이벤트가 해당 스키마 또는 테이블과 관련된 경우에만 실행된다. ● DDL 문에 트리거 작성 CREATE [OR REPLACE] TRIGGER trigger_name timing [ddl_event1 [OR ddl_e..
● 트리거 - 데이터베이스 트리거 연결된 사용자 또는 사용되는 응용 프로그램과 상관없이 INSERT, UPDATE, DELETE 문 등의 트리거 문이 관련 테이블에 대해 실행될 때 암시적으로 실행된다. - 응용 프로그램 트리거 응용 프로그램에서 특정 이벤트가 발생할 때마다 암시적으로 실행된다. 특정 작업을 수행할 때 관련 작업도 수행하려면 트리거를 사용할 수 있다. 트리거를 과다하게 사용하면 상호 종속성이 복잡해져 대형 응용프로그램에서 트리거를 유지 관리하기가 어렵다. 필요할 때만 트리거를 사용하고 순환 및 계단식 효과를 주의해야한다. ● 데이터베이스 트리거 구성요소. 구성 요소 설명 가능한값 트리거 타이밍 트리거 이벤트에 따라 트리거를 실행하는 시기입니다. BEFORE AFTER INSTEAD OF 트..
PL/SQL문 SHOW ERRORS PL/SQL 문 작성 후 마지막에 SHOW ERRORS 구문을 추가해주면, 어느 곳에 어떤 에러가 있는지 출력해 준다.
● DBMS_PIPE 패키지 내부 세션 통신을 위한 알고리즘을 제공한다.(보안은 되지 않는다.) - 패키지에 포함된 일부 프로시저/함수 → PACK_MESSAGE → SEND_MESSAGE → RECEIVE_MESSAGE → UNPACK_MESSAGE 함수 또는 프로시저 설명 PACK_MESSAGE (프로시저) SEND_MESSAGE 함수로 보낼 항목(VARCHAR2, NUMBER 또는 DATE 유형 항목)을 로컬 메시지 버퍼에 압축합니다. SEND_MESSAGE (함수) 로컬 메시지 버퍼에 들어 있는 메시지를 명명된 파이프로 보냅니다. RECEIVE_MESSAGE (함수) 명명된 파이프에서 메시지를 검색하여 로컬 메시지 버퍼에 넣고 UNPACK 프로시저로 압축을 풉니다. UNPACK_MESSAGE 로컬..
● 오버로드 하나의 패키지 내의 여러 서브프로그램은 동일한 이름을 사용할 수 있다. 동일한 이름의 여러 서브프로그램을 구분하려면 형식 매개변수 개수, 순서 또는 테이터 유형 계열은 달라져야 한다. - 제한사항 : 로컬 또는 패키지 서브프로그램만 오버로드 할 수 있다. Ex. - 패키지 명세 작성. CREATE OR REPLACE PACKAGE over_pack IS PROCEDURE add_dept (v_deptno IN dept.deptno%TYPE, v_name IN dept.dname%TYPE DEFAULT 'unknown', v_loc IN dept.loc%TYPE DEFAULT 'unknown'); PROCEDURE add_dept (v_name IN dept.dname%TYPE DEFAULT ..
자신이 사용하고 있는 오라클 DB의 데이터를 다른 곳으로 옮기고 싶을 때 어떻게 데이터베이스를 덤프(익스포트)/임포트 하는지 알아보겠습니다. DB를 덤프하고 임포트하는 수준에는 크게 3가지 수준이 있습니다. 첫째가 전체 단위, 둘째가 사용자 단위, 셋째가 테이블 단위입니다. 1. 전체 단위(오라클 DB 전체) 덤프(익스포트) | C:\) exp userid=system/비밀번호@SID file='C:\파일명.dmp' full=y 임포트 | C:\) imp userid=system/비밀번호@SID file='C:\파일명.dmp' full=y 2. 사용자 단위(특정 계정/사용자의 DB ) 덤프(익스포트) | C:\) exp userid=계정명/비밀번호@SID file='C:\파일명.dmp' 임포트 | C:\..
테스트용 유저컨트롤 U1 과 U2 를 만들고, 유저컨트롤 U2에서 유저컨트롤 U1의 컨트롤을 상속받는 방법입니다. 컨트롤을 올릴 유저컨트롤 U1 을 만들어 줍니다. 테스트용으로 컨트롤의 Modifiers 속성을 리스트박스만 Public설정하고, 나머지 컨트롤은 기본 상태인 Private으로 둡니다. 유저컨트롤 U2를 만들고, 코드로가서 상속받을 유저컨트롤명을 위와같이 적어준 후, 디자이너보기로 가면 u1의 컨트롤들이 폼에 올라와 있는 것을 확인할 수 있습니다. U1에서 상속받은 컨트롤들은, 속성값이 Public인 것은 상속받은 자식(U2)에서 위치조정이 가능합니다. 또한, U1에서 컨트롤의 위치 등 상태를 변화시킨 후 빌드하면, Private 속성인 부모(U1)의 컨트롤들은 자식에 그대로 적용되지만 Pu..
string 클래스는 문자열과 관련된 수많은 메소드들을 가지고 있습니다. 이들의 목적은 문자열의 내용을 검색하거나 조작하기 위함입니다. 이번 포스트에서는 string의 메소드들을 정리해보았습니다. 단순히 나열하기 보다는 무엇을 하고 싶다는 것을 기준으로 필요할 때 찾아 볼 수 있도록 하였습니다. 원하는 작업 string이 제공하는 필드 또는 메소드 사용 예 출력 결과 알파벳 문자들을 대문자로 바꾼다. string ToUpper() string str = "Super Star"; str = str.ToUpper(); Console.WriteLine(str); SUPER STAR 알파벳 문자들을 소문자로 바꾼다. string ToLower() string str = "Super Star"; str = str..
폼이 로드되자마자, 포커스를 텍스트박스에 가기위해 직관적으로, textBox1.Focus();를 생각하곤 한다. 그러나 이렇게해도, Load시에는 포커스가 가지 않기 때문에, 이럴때에는, this.ActiveControl = textBox1; 을 해준 후, 포커스 설정을 하면 포커스가 텍스트박스 안에서 깜빡이는 것을 확인할 수있다. 한편, 텍스트박스 내의 마우스의 좌표는 육안으로 깜빡거리는 것을 확인하지 않아도 좌표는 그대로 남아있다. [참고] : https://stackoverflow.com/questions/6597196/how-to-put-focus-on-textbox-when-the-form-load
워드패드에 미리 문자열형식(글씨체, 색깔 등)을 지정한 후, C#에서 불러와서 쓰면 편리하게 사용을 할 수 있다. 리치텍스트박스는 rtf(Rich Text Format)라는 메서드를 가지고 있는데 이를 이용하면, 간단하게 리치텍스트박스에안에 색깔을 입힐 수도 있다. 먼저 워드패드를 열고, C#에서 보여주거나 이용할 텍스트를 적고, 자유롭게 글자크기나 폰트, 색깔등을 지정하고 저장해준다. 이 rtf파일은 메모장에서 Text형식으로 열어보면, 다음과 같이 알수없는 문자로 되어있는데 이는 C# 에서 리치텍스트 박스의 rtf메서드를 이용하여 호출하면, 다시 사용자가 보기 쉬운 형태로 보이기 때문에 크게 신경쓰지 않아도 된다. C#에서 리치텍스트박스 컨트롤을 올리고, 솔루션 탐색기에서 Properties의 Res..