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
[2583] Re:데이타베이스와 파일의 연결...
지니 [] 4044 읽음    1999-12-26 00:00
:
: 실험을 하면서 받는 데이타들을 프로그램의 특정파일(ex.data.dat)에 저장하고
: 동시에 이 데이타들을 데이타베이스를 아용하여 저장하고 싶습니다.
: 그래서 Alias가 BCDEMOS인 Table 파일(ex,aaa.db)을 만들었습니다.
: 그런데 이 aaa.db로 data.dat파일의 내용을 어떻게 저장하는질 모르겠어요.
: 직접 입력한다는 것은 데이타가 넘  많아 정말 불가능합니다.
: 그런데 책들을 찾아봐도 기존의 db파일을 TDBGrid를 이용하여 불러들이는
: 경우가 대부분이더군요 T.T
:
: 제가 생각한 것처럼 만들려면 어떻해야 하는 거죠?
: 이 방법이 불가능하다면 필드와 프로그램에서 쓰이는 변수를 대응시켜
: 데이탈 저장할 순 있나요? 예를 들면, 변수의 값을 aaa.db의 필드에 저장하는..
:
: 소스가 혹시라도 있담 정말 좋구요, 참고할수 있는 사이트를 추천해 주셔도
: 좋습니다.
:
: 꼭 부탁드립니다.
:


//////////////////////////////////////////////////////////////////////////////
안녕하세요..지니입니다.
실험을 하면서 받는 데이타라면 외부장치로 부터 입력받는 데이타인 모양이죠?
프로그램의 특정화일로 저장할 수 있으면 DB화일로도 저장할 수 있죠.

이미 데이타 화일이 있는 상태에서 DB화일로 저장하고 싶으신지,
아니면 데이타 화일로 저장함과 동시에 DB화일로도 저장하고 싶으신지
잘 모르겠지만, 두가지 다 가능합니다.

우선 데이타 화일이 존재할 경우는 일정한 포맷으로 저장했을거라 생각됩니다.
그 포맷은 소영님이 더 잘 아시겠죠.

그럼 화일을 오픈시켜서 화일의 처음부터 마지막까지 루프를 돌면서 한줄 한줄 DB화일에
저장하면 됩니다.

예를들어..데이타포맷이 Name(char),Inputdate(date),Value(int)로 되어있고,
그리고 DB의 필드도 같은 이름으로 되어있다고 가정할때..

char buf[128];
화일오픈.
while(화일의 마지막이 아닐때까지)
{
   buf = 한줄을 읽어온다.
   buf를 포맷에 따라 잘라서 변수에 저장한다.(Name,Inputdate,Value)로 저장한다.

   //테이블 컴포넌트를 쓸경우..
   Table1->Append();
   Table1->FieldByName("Name")->AsString = Name;
   Table1->FieldByName("Inputdate")->AsDate = Inputdate;
   Table1->FieldByName("Value")->AsInteger = Value;
   Table1->Post();

   //또는 쿼리컴포넌트를 써서 (Insert Into쿼리문을 작성해도 됩니다.);
}
화일클로즈.

그리고 데이타를 외부장치로 부터 입력받아서 화일로 저장한다면, 화일로 저장할때
일정한 형식으로 저장하겠죠. 그럼 거기서 원하시는 형태로 데이타를 잘라서 DB에 저장하면
됩니다.

예를들면..
char buf[128];

buf = 외부장치로 부터 데이타를 입력받는다.
위에서 처럼 buf를(Name,Inputdate,Value로) 분리합니다.

화일저장
//저장코드 입력

DB저장
//테이블 컴포넌트를 쓸경우..
Table1->Append();
Table1->FieldByName("Name")->AsString = Name;
Table1->FieldByName("Inputdate")->AsDate = Inputdate;
Table1->FieldByName("Value")->AsInteger = Value;
Table1->Post();

//또는 쿼리컴포넌트를 써서 (Insert Into쿼리문을 작성해도 됩니다.);

그럼..잘 되길 빌며...

+ -

관련 글 리스트
2582 데이타베이스와 파일의 연결... 소영 3830 1999/12/26
2583     Re:데이타베이스와 파일의 연결... 지니 4044 1999/12/26
2587         RE:지니님! 또 질문을 드립니다 ^^;; 소영 3827 1999/12/26
2601             Re:RE:지니님! 또 질문을 드립니다 ^^;; 지니 3878 2000/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.