Joseph님 바쁜신 가운데 친절한 답변 정말 감사드립니다. 근데 정말 안되요
눈씻고 열심히 해도 안됩니다.
환경 : c++ Builder 6.0, ZeosDB 6.6
테스트 코드
void __fastcall TFInPut::BOK_inputClick(TObject *Sender)
{
String Command;
Command.sprintf("INSERT INTO CDATA (SEQ_NO,SEQ,HEAD,CMEMO) "
"VALUES (NEXT VALUE FOR C_DAT,:NO_B,:MSG,:CTEXT) RETURNING SEQ_NO");
DMod->ZQuery->SQL->Clear();
DMod->ZQuery->SQL->Add(Command);
DMod->ZQuery->ParamByName("NO_B")->AsInteger = nd;
DMod->ZQuery->ParamByName("MSG")->AsString = eTitle->Text;
DMod->ZQuery->ParamByName("CTEXT")->AsMemo = Memo1->Text;
DMod->ZQuery->ExecSQL();
int nIndexNO = DMod->ZQuery->FieldByName("SEQ_NO")->AsInteger; //
<-- 이부분에서 필드 NO_B를 참조할수 없슴 이라는 에러가 발생됩니다.
DMod->ZConnection1->Commit();
}
Joseph 님이 쓰신 글 :
: qryIncome->Close();
: qryIncome->SQL->Clear();
: qryIncome->SQL->Add("INSERT INTO INCOME (");
: ....
: qryIncome->SQL->Add(":USERID)");
: qryIncome->SQL->Add("RETURNING INCOMENO"); // INTO :QUOTATIONNO");
: .....
: qryIncome->ParamByName("USERID")->AsString = frmUser->getLogonID();
: qryIncome->ExecQuery();
: tmpIncomeNo = qryIncome->FieldByName("INCOMENO")->AsInteger;
:
: 제가 현재 사용하고 있는 코드의 일부입니다. 저도 INTO를 사용하려고 했다가 안되서 고친 흔적이 있고요.
: 이와 관련해서는 STORE PROCEDURE는 사용하지 않았습니다.
: 그리고 물론 잘 됩니다. 다시 검토해 보시기 바랍니다.
:
: 강두헌.
:
: 빌더사랑 님이 쓰신 글 :
: : 안됩니다..
: : 혹시 STORE PROCEDURE에서 아래와 같이 사용해야만
: : INSERT 된 SEQ_NO를 참조할 수 있는 것 아닙니까 ?
: : 어찌하면 됩니까 ?
: :
: : INSERT INTO CDATA (SEQ_NO,SEQ,HEAD,CMEMO) "
: : "VALUES (NEXT VALUE FOR C_DAT,:NO_B,:MSG,:CTEXT) RETURNING SEQ_NO INTO :BUNHO
: :
: :
: : Joseph 님이 쓰신 글 :
: : : FieldByName("SEQ_NO") 로 참조하실 수 있습니다.
: : :
: : : freeman 님이 쓰신 글 :
: : : : 안녕하세요 불새를 이제막 시작 하는데요
: : : : 2.0 에서는
: : : : insert 문에서, 실제로 인서트된 데이터들을 다시 리턴하는 문법으로
: : : : RETURNING 절이 추가 되었는데, 전 아래와 같이 코드를 작성하고
: : : : 실행 시키면 에러가 발생합니다. 무슨 이유인지를 모르 겠습니다.
: : : :
: : : : 제가 코딩한 부분 --> RETURNING SEQ_NO INTO :BUNHO;");
: : : : 여기에서 INTO :BUNHO 를 제거 하고 RETURNING SEQ_NO ;"); 이런식으로 하면 에러없이 insert가 잘 됩니다.
: : : : 그런데 SEQ_NO값을 어찌 참조 해야 할지를 모르겠습니다.
: : : : 부탁 드립니다.
: : : :
: : : : //-------------------------------------------------------
: : : :
: : : : String Command;
: : : :
: : : : Command.sprintf("INSERT INTO CDATA (SEQ_NO,SEQ,HEAD,CMEMO) "
: : : : "VALUES (NEXT VALUE FOR C_DAT,:NO_B,:MSG,:CTEXT) RETURNING SEQ_NO INTO :BUNHO;");
: : : :
: : : : DMod->ZQuery->SQL->Clear();
: : : : DMod->ZQuery->SQL->Add(Command);
: : : : DMod->ZQuery->ParamByName("NO_B")->AsInteger = nd;
: : : : DMod->ZQuery->ParamByName("MSG")->AsString = eTitle->Text;
: : : : DMod->ZQuery->ParamByName("CTEXT")->AsMemo = Memo1->Text;
: : : :
: : : : DMod->ZQuery->ExecSQL();
: : : : DMod->ZConnection1->Commit();
|