void CDiaryView::SetPlan(int year, int month, int day)
{
CString y,m,d;
y.Format("%d",year);
m.Format("%d",month);
d.Format("%d",day);
m_strYear=y;
m_strMonth=m;
m_strDay=d;
CRecordset recSet(&g_dbDiary);
CString date;
date.Format("%04d-%02d-%02d",year,month,day);
TRY
{
CString strSQL;
strSQL.Format("SELECT * FROM PLAN WHERE DATE = '%s'",date);
if(!recSet.Open(CRecordset::forwardOnly,strSQL))
{
if(recSet.IsOpen())
recSet.Close();
strSQL.Format("INSERT INTO PLAN (DATE) VALUES ('%s')",date);
recSet.Open(CRecordset::forwardOnly,strSQL);
if(recSet.IsOpen())
recSet.Close();
strSQL.Format("SELECT * FROM PLAN WHERE DATE='%s'",date);
recSet.Open(CRecordset::forwardOnly,strSQL);
}
recSet.GetFieldValue(_T("AMPLAN"),m_strAmplan);
recSet.GetFieldValue(_T("AMDONE"),m_strAmdone);
recSet.GetFieldValue(_T("PMPLAN"),m_strPmplan);
recSet.GetFieldValue(_T("PMDONE"),m_strPmdone);
}
CATCH(CException,e)
{
TCHAR szCause[255];
e->GetErrorMessage(szCause,255);
AfxMessageBox(szCause,MB_ICONERROR);
if(recSet.IsOpen())
recSet.Close();
return;
}
END_CATCH
UpdateData(FALSE);
}
위의 코드는 sql문을 설정해주고 날짜가 같은 날을 불러오는 것입니다. 그런데 데이터베이스에 날짜가 있
는 경우는 데이터가 로드가 되지만 날짜가 없는 경우에는 "잘못된 커서 상태입니다"라고 예외가 발생합니
다. 제가 하고 싶은건 날짜가 없을때는 INSERT INTO 문을 이용해서 그 날짜에 해당하는 빈 데이터를 데이터
베이스에 넣으려고 하는건데... 어떻게 하면 될지 제발 좀 갈쳐주세요... 며칠째 이거땜에 고민만 하고 일
이 진행이 안됩니다... 제발요!!!
|