집에서 심심하면 만들고 있는 토이 프로젝트가 있는데 

익숙치 않은 mfc라 힘들다~







위와 같이 기본 list control을 생성 후

각 컬럼과 열에 data를 넣어준 뒤 클릭벤트를 걸어주면

row 전체가 선택이 되는게 아니라 첫번째 열(column)만이 선택이된다.



이럴때 마법과 같은 코드 한줄이면 전체 선택이 된다.



 리스트컨트롤 변수를 생성하여 아래의 코드를 onInitDialog쪽에 쳐주면




CListCtrl test;

test.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);




LVS_EX_FULLROWSELECT만 적용된 경우




LVS_EX_FULLROWSELEC | LVS_EX_GRIDLINES 적용된 경우




그 이외에 스타일 추가는 msdn에 있을거라 생각되고

 필요하면 찾아서 적용하면 될듯하다

Posted by 루우지


Oracle 에서는 MySql에 있는 Auto_Increment 기능이 없다.

그렇기에 자동으로 인덱스값을 증가시켜주기 위해서는 시퀀스를 생성해서 사용해야한다.



1) 예제 테이블 생성

create table tmp(

    idx_tmp number(10),

    name    varchar(1000)

);


예제로 사용할 TMP테이블을 생성하였다.

이제 idx_tmp 의 값을 차례대로 증가시키는 시퀀스를 생성해야한다.



2) 시퀀스 생성

CREATE SEQUENCE tmp_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100 CYCLE NOCACHE;


tmp_seq라는 시퀀스를 만드는 sql이다.

간단하게 키워드에대한 설명을 하자면 아래의 표를 확인하길 바란다.


CREATE SEQUENCE “스키마명.시퀀스명”
MINVALUE -- 시퀀스가 시작되는 최초의 숫자
MAXVALUE --시퀀스가 끝나는 최대 숫자
INCREMENT BY -- 시퀀스가 증가되는 단위
START WITH -- 시퀀스 생성이 시작되는 값
NOCACHE  -- 캐시를 사용하지 않음
NOORDER  --요청되는 순서대로 값을 생성하지 않음
NOCYCLE  --초기값부터 다시 시작하지 않음

tmp_seq 시퀀스는 1부터 시작하여 1씩 증가하여 100까지 도는 시퀀스이다.



3) 시퀀스를 사용한 값 삽입


INSERT INTO tmp values(tmp_seq.NEXTVAL, 'tmptmp');


이제 insert할때 시퀀스명.NEXTVAL 함수를 사용하면 자동으로 1씩 증가되어 값이 추가되는걸 확인할 수 있다.



4) 값 조회


select * from tmp;



Posted by 루우지