|
아래는 저의 소스코드이구요.
informix database에 접근하여. 테이블에서 조건문에 해당되는
레코드 수를 구해서 index값을 결정하고
새로 만든 레코드를 다시 그 테이블에 입력하는 루틴입니다.
제가 C++도 처음이고, builder역시 처음이라..
sql문 자체를 어떻게 써야할지 무지 막막하거든여.
--------------------------------------------------------------------------------------
QueryHistCode->Close();
QueryHistCode->SQL->Clear();
QueryHistCode->SQL->Text =
" select * from bgchghist"+MaskEditBaseMonth->Text.SubString(1,4)
+ " where basemonth='"+ MaskEditBaseMonth->Text + "'";
QueryHistCode->Open();
if ( QueryHistCode->RecordCount < 1)
TmpSeqNo = 1; // 레코드가 하나도 없을때
else
TmpSeqNo = FloatToStr(QueryHistCode->RecordCount +1); //레코드가 존재할때
QueryHistCode->Close();
QueryHistCode->SQL->Clear();
QueryHistCode->SQL->Text =
"insert into bgchghist" + MaskEditBaseMonth->Text.SubString(1,4)
+ " values ('" + TmpSeqNo // 레코드 개수를 이용하여 인덱스를 정한다.
+ "','" + MaskEditBaseMonth->Text
........
+ "')";
QueryHistCode->ExecSQL();
------------------------------------------------------------------
이 것을 실행했을때 나오는 오류메세지입니다.
------------------------------------------------------------------
Project AAA.exe raised exception class EDatabaseError with message
'Dataset not in edit or insert mode'. Process stopped.
Use Step or Run to continue.
------------------------------------------------------------------
다른사람이 짜 놓은 소스를 이용하여 이것 저것 짜집기를 해서 사용을 했는데
정확하게 메소드들이 어떤 역할을 수행하는지 모르고 한것이라.
에러가 나면 왜 그런지 참 막막합니다.
sql 관련 메소드 중 close(), clear(), open()은 각각 어떤 역할을 하는건지..
어떤 때 사용을 하는건지 알고 싶습니다.
흑흑.. 아시는분.... 제 프로그램이 어떻게 이상한지..
좀 알려주세요...
|