참 오랜만에 끼적강좌 올리네요..^^
솔직히 DB라고 해도 다른 프로그램과 호환이 안돼서..하지만 이번 강좌는 창조로 보다 멋진 DB구조의 프로그램을 구현하는데 조금이나마 도움이 될거라 생각됩니다..
이번 DB구조는 그간의 방식과 차원을 두고 만들어봤습니다..
총 4번으로 나누어 올리겠습니다..아직 완성하지 못한 부분이 있어 길어질수도 있습니다..
1강 구조와 읽기 2강 쓰기 3강 삭제 4강 수정등...으로..
구조상 좀 난해한부분이 많아서..^^
1강 DB구좌와 읽기...
다음 DB파일의 구조입니다..
** ADD.DAT **
[NO]
0001=홍길동:남:043/848/0000:016/334/0000:충북충주시성남동000번지:2004/7/25:
0002=김이쁜:여:043/849/0000:018/777/0000:충북충주시성서동000번지:2004/7/11:
[이름]
홍길동=0001:
김이쁜=0002:
[성별]
남=0001:
여=0002:
[지역]
충북=0001:0002:
[등록일]
200407=0001:0002:
위 내용은 ADD.DAT 의 파일 내용이다..
간단히 설명하자면 NO는 각각의 키워드로 검색된 내을 총포관한 부분이면
그외 이름 성별 지역 등록일등은 키워가 된다..
즉 이름을 선택후 홍길동을 검색하게되면 키값코드 0001이 검색되여 NO의 키코드 0001의 데이타를 보여주게 된다..
그리고 지역또는 등록일을 검색하게되면 0001,0002와 같이 같은 값을 가진 키코드값을 검출하여 NO의 키코드 0001,0002의 내용을 보여주게 된다..
그럼 간단한 함수 명령을..
문자함수:데이타출력(실수:수 ;문자:검색어 );
자 수는 위 검색될 키워드의 분류수이며 검색어는 아시죠..
실수: 핸들;
핸들 := 환경열어(DB파일);
만일(수=1){ 결과 := 환경문읽어(핸들, "이름", 검색어, "결과없음"); }
아니면 만일(수=2){ 결과 := 환경문읽어(핸들, "성별", 검색어, "결과없음"); }
아니면 만일(수=3){ 결과 := 환경문읽어(핸들, "지역", 검색어, "결과없음"); }
아니면 만일(수=4){ 결과 := 환경문읽어(핸들, "등록일", 검색어, "결과없음"); }
아니면 { 결과:="등록정보없음"; }
환경닫아(핸들);
자 요부분을 보시고 아하..하는 분이 많겠죠.. 즉 1은.. 이름 2는 성별식으로 ADD.DAT데이타에서 값을 찾아 오는것입니다..
그럼 반환되값을 어떻게 읽어들일까요..?
위에서 반환된값을 등록번호라고 하자면..아래와 같은 함수가 필요하겠죠..
함수:검색출력(문자:등록번호)
실수: 수,반수;
리스트박스.내용.지워;
반복
{
수:=문자찾아(":", 등록번호);
리스트박스.내용.추가:=문자복사(등록번호, 1, (수-1)); <-- 맞나..추가방법이..?
등록번호:=문자삭제(등록번호, 1, 수);
반수:=반수+1;
}까지(수=0);
이것은 반환된 등록번호가 여러개 일수있기때문에 위와 같이 반환된 값을 분류해주는것이다..
즉
0001:0002:0003:같이 여러개의 수가 있음
리스트박스에
0001
0002
0003
과 같이 분류해여 불러올수있도록 만들어주는것이다..
그럼 이제 검출된 NO키값을 읽어드리면된다..
실수: 핸들,수;
핸들 := 환경열어(DB파일);
반복{
리스트박스1.내용.추가:= 환경문읽어(핸들, "NO", 리스트박.내용.부분문자(수), "결과없음");
수:=수+1;
}까지(리스트박스.내용.줄수=수);
위방법말고 부분적으로 :문자를 찾아서 알맞게 표현해도 좋을것이라 생각된다..
이번강좌는 여기까지..라고 해야겠죠..
간단한 소스는 귀차니즘으로..^^ 이해 하신분은 소스를 만드셔서 올려주셨음합니다..
본 DB구는 주소록을 기본으로 해서 만든것입니다..
기타 궁굼사항은 Q&A로 .... 다음강좌는 다음주중으로..^^ |
|