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
[22093] Re:[질문]ADOQuery에서 EAccessViolation 이 걸립니다. 도와주세요.
정명기 [bright] 1097 읽음    2002-10-17 21:00
쩝쩝.. 자문자답하네여...
절대로 FormCreate에 넣지 말아야 겠네요...
OnActivate 이벤트의 함수에 넣으니 제대로 작동되네여.. 쩝쩝..
FormCreate는 어플리케이션 시작할때 구동이 되는 곳이군요.. 쩝쩝..
언제나 초볼 벗어날지... ^^;;

그럼 이만.



정명기 님이 쓰신 글 :
: 우선 너무나도 초보임을 밝힙니다. T.T;;
:
: 소스는 다음과 같습니다.
:
: void __fastcall TUnit_Dlg::FormCreate(TObject *Sender)
: {
:     int nRow = 1;
:     try {
:         Oracle->OraQuery->SQL->Text = "SELECT * FROM UNIT";    // <<-- 이부분입니다.
:         if (!Oracle->OraQuery->Prepared)
:             Oracle->OraQuery->Prepared = true;
:
:         Oracle->OraQuery->Open();
:         Oracle->OraQuery->ExecSQL();
:
:         UnitGrid->RowCount = Oracle->OraQuery->RecordCount + 1;
:         UnitGrid->Cells[0][0] = "번호";
:         UnitGrid->Cells[1][0] = "단위명";
:         UnitGrid->Cells[2][0] = "수정";
:         UnitGrid->Cells[3][0] = "삭제";
:         UnitGrid->ColWidths[1] = 50;
:
:         while (Oracle->OraQuery->Eof)  {
:             UnitGrid->Cells[0][nRow] =
:                 Oracle->OraQuery->FieldByName("unit_num")->AsString;
:             UnitGrid->Cells[1][nRow] =
:                 Oracle->OraQuery->FieldByName("unit_content")->AsString;
:             UnitGrid->Cells[2][nRow] = "[수정]";
:             UnitGrid->Cells[3][nRow++] = "[삭제]";
:
:             Oracle->OraQuery->Next();
:         }
:         Oracle->OraQuery->Close();
:     } catch (Exception &e)  {
:         ShowMessage("Error : " + e.Message);
:     }
: }
: DataModule을 따로 두고 거기에 TADOConnection, TADOQuery를 두었습니다.
: DataModule 이름은 Oracle로 하였고요..
: 이 코드가 들어 있는 곳은 Sub Form입니다.
: 문제는 컴파일하고 실행할려고만 하면 위의 // <<-- 이부분입니다.  에서 에러가 발생하는 겁니다.
: 디버거 상에서 보면 Oracle 이 Null 로 되어 있는 것으로 보입니다.
: 짧은 생각에는 Unit_Dlg라는 서브폼이 어플리케이션이 실행되어질때 같이 만들어 지면서 connection이 이루어지기 전에 DataModule을 참조하려고 하는 것 때문에 발생되는 문제인거 같습니다만...
: 그렇다면 서브폼은 어떻게 정의를 하여야 할까요? 어떤 property 를 설정해야지만 처음부터 form2가 만들어 지지 않겠는지요... 참고로 메인폼에서는 Unit_Dlg->ShowModal(); 로 부르려고 합니다.
: 지금 서브폼의 property중 Enabled, Visible은 true로 되어 있습니다.
:
: 아참.. 그리고 DataModule에서 TADOConnection의 property중 Connected는 true로 LoginPrompt는 false로 설정해 놓은 상태입니다.
:
: 여러 고수님들의 자문을 구합니다.
:
: 그럼 이만.
:

+ -

관련 글 리스트
22092 [질문]ADOQuery에서 EAccessViolation 이 걸립니다. 도와주세요. 정명기 852 2002/10/17
22093     Re:[질문]ADOQuery에서 EAccessViolation 이 걸립니다. 도와주세요. 정명기 1097 2002/10/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.