각 클래스에서 객체 얻기

 

 

 

MainFrame 얻기

CMainFrame *pFrame = (CmainFrame *) AfxGetMainWnd();

 

App 포인터 얻기

CTestApp *pApp = (CtestApp *) AfxGetApp();

 

Document 포인터 얻기(새로 만든 클래스에서 얻어올때)

#include "TestDoc.h"

#include "MainFrm.h"

 

CTestDoc *pDoc = (CTestDoc*)((CMainFrame *)AfxGetMainWnd())->GetActiveDocument();

 

GetParentFrame에서 GetActiveDocument 찾기

CDrawDoc * pDoc = (CDrawDoc*)GetParentFrame()->GetActiveDocument();

 

View 포인터 얻기(새로 만든 클래스에서 얻어올때)

#include "TestView.h"

#include "MainFrm.h"

CTestView *pView = (CTestView*)((CMainFrame *)AfxGetMainWnd())->GetActiveView();

 

자식 Dialog에서 부모 Dialog 포인터 얻기

CParent* pDlg = (CParent*)GetParent();

 

부모 Dialog에서 자식 Dialog 포인터 얻기

CChild dlg.m_variant;

 

CView에서 CDocument 객체 얻어올때

GetDocument()

 

CView에서 CFrameWnd 객체 얻어올때

GetParentFrame()

 

CDocument에서 CView객체 얻어올때

GetFirstViewPosition(), GetNextView()

 

CFrameWnd에서 CView 객체 얻어올때

GetActiveView()

 

CFrameWnd에서 CDocument 객체 얻어올때

GetActiveDocument()

 

Afx로 시작하는 함수는 전역함수라 어디서든 사용가능

AfxAbort()

어플리케이션 무조건 종료

AfxMessageBox()

메시지 상자를 표시

AfxGetApp()

어플리케이션 객체의 포인터 리턴

AfxGetAppName()

어플리케이션 명을 리턴

AfxGetMainWnd()

메인 프레임 윈도우 포인터 리턴

AfxGetInstanceHandle()

현재 인스턴스 핸들 리턴



'API & MFC > MFC & COM' 카테고리의 다른 글

프로퍼티시트 적용&도움말 지우기  (0) 2010.03.11
디버그모드 & 릴리즈모드  (0) 2010.03.10
사운드출력함수  (0) 2010.03.10
좌표가 영역안에 있는지 확인  (0) 2010.03.10
UpdateData함수  (0) 2010.03.08
Posted by 아몰라


여러개의 서브쿼리 결과가 하나 나올때는

=, >, <, >=,<= 을 써야 한다.

결과값이 많을 경우는 In, And , All이 라던지 다른 방법을 사용한다.


SELECT ename,sal
FROM emp
WHERE sal< (SELECT AVG(sal)FROM emp);

월급이 평균이상인 사원을 나열하여라.


select *
from emp
group by deptno;

에러가난다.  select 절에 deptno나 max(sal) 같은 값만 올 수 있다.

 

서브쿼리 사용예제
select deptno, max(sal)
from (select * from emp)
where sal > (select avg(sal) from emp)
group by deptno
having deptno = (select deptno from dept where DNAME =
select Dname from dept where loc = 'NEW YORK'))


 

'프로그래밍 기초 > 오라클' 카테고리의 다른 글

제약조건(Constraint)  (0) 2010.03.01
Advanced Query  (0) 2010.02.25
Single-Row Functions  (0) 2010.02.24
기본쿼리2  (0) 2010.02.24
기본쿼리  (1) 2010.02.23
Posted by 아몰라

테이블 안에서 데이터의 성격을 정의하는 것이 바로 제약조건(Constaint) 이며 테이블 생성 또는 변경시에 특정 컬럼에 조건을 정의할 수 있다. 제약 조건에는 NOT NULL조건, 유일성(UNIQUE), Chek 조건, 기본키, 외래키 조건 이 있다.

- 데이터베이스 성능을 향상시킬 수 있다.
- 선언과 변경이 용이하다.
- 활성화/비활성화 할 수 있다.
- 요구사항과 Rule의 통합적 통제가 가능하다.



NOT NULL

Create Table Employee(
emp_no NUMBER CONSTRAINT Emp_nn_EmpNo NOT NULL,
emp_name VARCHAR2(30),
dept_no NUMBER CONSTRAINT Emp_nn_DeptNo NOT NULL
);
사원번호에 널값이 들어가는걸 허용하지 않겠다는 말이다. 널값이 들어가면 Emp_nn_EmpNo 라는 에러메세지가 뜬다.



UNIQUE

Create Table Employee(
emp_no NUMBER CONSTRAINT Emp_nn_EmpNo NOT NULL,
                          CONSTRAINT Emp_nn_EmpNo UNIQUE
)
유일성을 보장한다는 뜻으로 emp_no 에 10이라는 값이들어가면 또 다시 10이라는 값이 들어갈 수 없다.



CHECK

CREATE TABLE Class(
class_id NUMBER CONSTAINT Class_ck_ClassID
                          CHECK (class_id >= 1 AND class_id <= 10),
class_name VARCHAR2(20) );
class_id가 만약 1이상 10 이하가 아닌 숫자가 들어가면 에러가 발생한다.



DEFAULT

max_amount       NUMBER DEFAULT 2000
                         CONSTRAINT CreditCard_nn_MaxAmnt NOT NULL
만약 max_amount 컬럼 값을 인서트 할때 넣지 않더라도 에러가 나지않는다 기본값을 설정했기때문이다.



기본키 - (NOT NULL + UNIQUE)

CREATE TABLE Loans(
account NUMBER(6, 0),
loan_number NUMBER(6, 0),
cust_id NUMBER(6,0),
CONSTRAINT Loans_pk_al PRIMARY KEY( account, loan_number)
);
이렇게 동시에 2개의 기본키를 지정해 줄 수도 있다.



외래키  - 다른 테이블에 기본키를 참조하는 컬럼

외래키로 선언될 컬럼의 데이터형은 그 키가 참조하는 기본키의 데이터 형과 일치해야 한다.


CREATE TABLE Dept(
dept_no   NUMBER,
dept_name VARCHAR2(10),

외래키 설정 2가지 방법
emp_no      VARCHAR2(6) CONSTRAINT Dept_fk_EmpNo References Employee(emp_no),
(CONSTRAINT Cloth_fk_shop_no FOREIGN KEY (shop_no) REFERENCES Shop)

CONSTRAINT Dept_pk_DeptNo PRIMARY KEY (dept_no)
);




다른 테이블에서 기본키를 참조하고있다.
ALTER TABLE Dept DROP PRIMARY KEY; - 에러가 난다.



외래키에 의해 참조되고 있는 기본키는 삭제될 수 없다.

부득이하게 기본키를 삭제해야 한다면 그 키를 참조하는 외래키를 먼저 삭제한 뒤에 기본키를 삭제한다.

ALTER TABLE Employee DROP CONSTRAINT Employee_FK_Dept_NO;  - 외래키 삭제
ALTER TABLE Dept DROP PRIMARY KEY; -기본키 삭제


'프로그래밍 기초 > 오라클' 카테고리의 다른 글

서브쿼리  (0) 2010.03.02
Advanced Query  (0) 2010.02.25
Single-Row Functions  (0) 2010.02.24
기본쿼리2  (0) 2010.02.24
기본쿼리  (1) 2010.02.23
Posted by 아몰라