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
[39996] [질문]DB서버가 끊어졌다가 다시 연결되었을때 TADOConnection, TADOQuery의 DB 연결.
초보자 [] 1221 읽음    2005-04-29 17:39
// TADOConnection를 2개 사용합니다.
// adoqry1는 TADOConnection1에 연결했음. (Object Inspector에서)
// TADOConnection1 의 ConnectionString에 DB, ID, 암호등 설정했음. (테스트 클릭하면 성공)
// "장치_현상태" 는 프로시져 이름입니다.

// 장비의 현상태를 저장하는 함수
void TfrmMain::Update_Equip(int nEquip, int nState)
{
    try
    {
        adoqry1->SQL->Clear();
        adoqry1->SQL->Text = "장치_현상태 :nEquip, :nState";

        adoqry1->Parameters->Items[0]->Value = nEquip;
        adoqry1->Parameters->Items[1]->Value = nState;

        adoqry1->ExecSQL();
    }
    catch (Exception &exception)
    {
    }
}
//---------------------------------------------------------------------------

위와 같이 데이타 수신시 장비의 상태를 저장합니다.
어떤 이유에서 DB서버의 문제가 생겨서 끊어졌다가 다시 살아났을때
데이타 수신해도 DB에 저장을 못합니다.
DB서버가 끊어졌을때 TADOConnection가 끊어져서 그런겁니까?

위에 함수에서 어떻게 수정을 해야 하는지요?
프로시져에 저장하기 전에 DB서버와 연결이 되어 있는지 확인은 어떻게 해야 하는지요?
아시는분 부탁합니다.

Timeout 설정하는 방법말구요.

위에 함수에서 adoqry1->SQL->Clear(); 전에

    if( TADOConnection1->State == (TObjectStates() << stClosed) )
        TADOConnection1->Open();

    if( TADOConnection2->State == (TObjectStates() << stClosed) )
        TADOConnection2->Open();

을 넣어봐도 TADOConnection 2개가 모두 연결되어 있는데 디버깅으로 따라가보면
1개는 연결이 안되어있는걸고 나옵니다.
실행을 계속 하면 프로시져 저장할때 에러가 나구요.

참고로 OS는 Window 2003 을 사용하고 DB는 SQL200 Server 사용합니다.
감시 프로그램과 DB서버는 다른 PC 이구요.

+ -

관련 글 리스트
39996 [질문]DB서버가 끊어졌다가 다시 연결되었을때 TADOConnection, TADOQuery의 DB 연결. 초보자 1221 2005/04/29
39999     Re:[질문]DB서버가 끊어졌다가 다시 연결되었을때 TADOConnection, TADOQuery의 DB 연결. 임기석 1362 2005/04/29
40009         [감사] 정말 감사드립니다. 초보자 791 2005/04/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.