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
[62369] Re:[DB]읽어오기(ms-sql ) 100개씩
로더 [] 2078 읽음    2010-09-08 14:00
얼마전에 프로그램에서 SMS를 보낼수있게 만들어 달라는 요청에 문자 모듈을 하나 제공 받고
db에 모듈과 관련된 테이블을 만든적이 있었습니다.

구성은 대략
  A 테이블 : 문자 처리 대기 테이블
  A_Log  테이블 : 문자 처리 완료 테이블(결과값포함) -> (나중에 처리 통계에 활용)

A 테이블의 값들을 가지고 가서 처리를 하고 처리결과와 같이 A_Log 테이블로 이동을 시키더군요.
비슷한 형식의 프로그램일거라 생각하고 혹시 참고가 되실까 적어보았습니다.

그리고 이건 그냥 궁금한건데요  top 100 이고 조건이 붙어있으면 항상 100개를 가지고 오라는 것이 아니고
상태에 따라 가지고 오는 데이터수가 변동이 될 것이고, 구문상에 보면 한번에 업데이트를 하는것도 아니고...
굳이 100개 미만의  데이타를 한번에 가지고 오실 필요가 있나 하는 생각이 듭니다.
차라리 1개씩 가지고 오시는게 중복을 줄일수 있는 방법이 되지 않을까요?

생각을 글로 적는게 많이 힘듭니다.ㅎ 참고하실 내용이 있으면 참고하시고 나머진 그냥 pass!! ㅎ


하안인 님이 쓰신 글 :
: ms-sql 에서 해당되는 퀴리를 날려서 100개씩 읽어오고 읽어온것을 한 필드에 값을 대입해서
: 다른 pc에서는 똑같은 값을 읽지 않으려고 합니다.
:
: A PC에서
:   2초마다 타이머로 아래 와 같이 합니다.
:
:    sql = String("select top(100) * from tb01 where v1 = 'R'");
:     q->Close();
:     q->SQL->Clear();
:     q->SQL->Text = sql;
:     q->Open();
:     while(!q->Eof)
:     {
:          if(n >= max) break;
:          inc = q->FieldByName("inc")->AsInteger;
:          ListBox1->Items->Add(IntToStr(inc) + String(" Read"));
:          q->Edit();
:          q->FieldByName("v1")->AsString = "I";
:          q->Post();
: /*
:               MSSQL->SQL->Clear();
:               MSSQL->SQL->Text = String("update tb01 set v1 = 'I', v2 = getdate()")+\
:                    String("where inc = ")+IntToStr(inc);
:               MSSQL->Execute();
: */
:          n++;
:          q->Next();
:     }
:     q->Close();
:
:   그런데 막상 실행해보면
:   A, B, C 세개의 PC에서 실행해 보면
:   중첩된 행이 존재합니다.
:   100개를 가져와서 버퍼로 저장한후 필드에 값을 대입하는데
:   update하는 시간때문에 중복된 행이 읽어져 옵니다.
:
: 어떻게 해야하는지요.

+ -

관련 글 리스트
62362 [DB]읽어오기(ms-sql ) 100개씩 하안인 1286 2010/09/07
62369     Re:[DB]읽어오기(ms-sql ) 100개씩 로더 2078 2010/09/08
62366     Re:[DB]읽어오기(ms-sql ) 100개씩 땅주인 1759 2010/09/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.