C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[10254] Re:S.O.S)DB에서 데이터를 읽어와서..
개박살.U&I [inutero] 1155 읽음    2001-08-24 16:41

안녕하세요? 개박살입니다.

흠.. 엄청난 질문입니다. 데이타베이스 프로그램의 처음부터 간략하게 적어야하겠군요 ^^;

일단 MS-엑세스 데이타베이스를 사용하셨다면, ADO를 이용해서 작업을 하셔야하겠군요

ADO는 스탠다드 버젼에는 없으니, 잘 찾아보세요!


1. 먼저, ADO탭중에 ADOConnection 이란 컴포넌트를 폼에 올리시고요 그 프로퍼티중에 ConnectionString
   이란 부분이 있습니다. 그걸 더블클릭하시면, 창이하나 나오는데 Use Connection String을 선택하시고
   Build 를 눌리시고 그다음,
       공급자 : MS-Jet 4.0 OLE DB Provido
       연결   : 데이타베이스선택하시고, 빈암호 체크하시고, 연결테스트 버튼으로 연결확인하세요
   그리고 확인을 눌르시고,
   또, 프로퍼티중에 LoginPrompt 를 False로 하시고, Connected를 True로 놓으시면!!
   그럼 DB연결부분은 끝입니다. --; 헉헉

2. ADO탭중에 ADOTable이라고 있습니다. 그걸 폼에 올리시고요 프로퍼티중에 Connection을 아까 올린 컴
   포넌트 있죠 그걸 찾아서 잡으시고, 그러면 TableName에 현재 DB파일에 있는 테이블이 쫙 올라 옵니당
   거기서 원하는 테이블을 설정하세요.. 그리고, Active를 True로 놓으시면!!
   테이블 연결도 끝입니다. ^^;

3. ADOTable을 이용해서 값을얻는 방법에대해서 적으면, 그냥 예제를 보여드리죠

   ADOTable1->FieldByName("사원번호")->AsString <<-- 이것이 접근방법입니다.

   글구 테이블의 커서가 중요한데 ADOTable이 Open된 순간 First로 가는데 이걸 다음으로 옮기려면
  
   ADOTable1->First(); 라고 하시면 첫번째로 가죠
  
   복합적인 예제는,

    ADOTable1->First();
    while(!ADOTable1->Eof)  {

        Data1 = ADOTable1->FieldByName("사원번호")->AsString;
        Data2 = ADOTable1->FieldByName("사원이름")->AsString;
        Data3 = ADOTable1->FieldByName("사원권한")->AsString;
        Data4 = ADOTable1->FieldByName("Flag"    )->AsString;

        //[*] 데이타 처리부분...

        ADOTable1->Next();
    }

    가 됩니다. 여기서 AsString를 보시면, 필드가 문자열일때만 씁니다. 제가 보기에 문자열로 다 하신거
    같아서 이렇게 했구요 자료종류에 따라서, AsFloat, AsInteger, AsBoolean, AsCurrency등이 있습니다.


두번째 질문은,  흠.. 이렇게 하면 되겠네요

    if(ADOTable1->FieldByName("사원권한")->AsBoolean)   {
        // 출입문 open --> 현재재직중이기에 출입문이 열리게 됩니다.
    } else  {
        //출입문 close -->그렇지 않으면 퇴사자기에 출입문이 열리지 않게 됩니다.
    }

헉헉.. 좀 허접한 답변이지만 성공하시길..

그럼 허접-개박살이였습니다.


콩아 님이 쓰신 글 :
: 안녕하세요. 좀 도와주셔요!
: 데이터베이스에서 필드를 읽어와서 그 필드를 갖고서 패킷데이터로 만들어서 데이터를 단말기로
: 보내려고 합니다.
: -->RS485에서요... 단말기로 데이터를 보내려고 하는데요!!!
: DB를 열어서 그곳의 레코드 필드를 어떻게 추출해서 사용하는지 전혀 모르겠어요..
: 좀 도와주셔요!!
:
: 질문1)
: 데이터베이스는 Micro Access로 작성하였습니다.
: DB명 employee.mdb-->데이터베이스 이름입니다.
:
: table 명 : emp(사원들 테이블을 지칭!)
: 필드명을 모두 한글로 지정했습니다.
:
: 사원번호 / 사원이름 / 사원권한 / Flag
: 여기서 사원권한은 '1'-char로 지정(알파벳!!!)  / Flag '1'->Char(알파벳)
: 위에서 알파벳으로 한것은 Type을 지칭한것입니다.
: --> 제가 작성한 폼과 소스를 보여드리겠습니다. 어떻게 해야하는지 좀 알려주십시요..
:
: (저는 그냥 buffer를 두고서 10byte씩 정의해놓은 사원데이트를 10명씩 보내는걸로 임시로 만들
: 었습니다. 그렇게보내면 한번에 100byte가 보내어지는거라 단말기에서 제대로못받을 수있다는 단
: 점이 있습니다.
: 그래서 데이터베이스에서 한명씩 읽어서 한명의 사원번호를 80명이면 80번 다운로드 시키고자 합
: 니다.)
:
:
: 질문2) 사원권한이 1이고 Flag가 1이면 그 사원은 현재 재직중이고  사원권한이 1이고
:        Flag가 0 이면 그 사원은 퇴사자 입니다.
: (ex) char 사원권한 = 1;
:      char Flag = 1;
:
: if ( 사원권한 == Flag)
: {
:  출입문 open --> 현재재직중이기에 출입문이 열리게 됩니다.
: }
: else
: {
:  출입문 close -->그렇지 않으면 퇴사자기에 출입문이 열리지 않게 됩니다.
: }
:
: ==>위의 부분은 그냥 임으로 작성해 보았습니다. 이런식으로 표현하려면 어떻게 하는지 소스좀
: 부탁드려도될까요?
:
: 부탁드립니다...
: 그럼 즐거은 프로그램 하셔요!!! 

+ -

관련 글 리스트
10250 S.O.S)DB에서 데이터를 읽어와서.. 콩아 878 2001/08/24
10254     Re:S.O.S)DB에서 데이터를 읽어와서.. 개박살.U&I 1155 2001/08/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.