CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
CString sExcelFile = "d:\\demo.xls";
CString sSql;
TRY
{
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver, sExcelFile, sExcelFile);
if(database.OpenEx(sSql, CDatabase::noOdbcDialog) )
{
sSql = "CREATE TABLE demo (Name TEXT, Age NUMBER)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES ('Bruno Brutalinsky',45)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES ('Fritz Pappenheimer',30)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES ('Hella Wahnsinn',28)";
database.ExecuteSQL(sSql);
}
database.Close();
}
CATCH_ALL(e)
{
TRACE1("Driver not installed: %s",sDriver);
}
END_CATCH_ALL;
그리고 읽어오기
읽어오기는 조금 바꿔봤다..쿼리 조건에 "데모"쉬트의 "이름 정의"필드가 비어있지 않은것을 불러온다.
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
CString sExcelFile = "d:\\demo.xls";
CString sSql;
TRY
{
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver, sExcelFile, sExcelFile);
if(database.OpenEx(sSql, CDatabase::noOdbcDialog) )
{
sSql = "SELECT * FROM 데모 WHERE \"이름 정의\" <> NULL";
CRecordset rs(&database);
rs.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly);
CString sItem1, sItem2;
while( !rs.IsEOF() )
{
rs.GetFieldValue((short)0, sItem1);
rs.GetFieldValue((short)1, sItem2);
CString strMsg;
strMsg.Format("Name : %s, Age : %s", sItem1, sItem2);
MessageBox(strMsg);
rs.MoveNext();
}
}
database.Close();
}
CATCH_ALL(e)
{
TCHAR szCauses[255];
CString strErrorMsg;
e->GetErrorMessage(szCauses, 255);
strErrorMsg = "Msg: ";
strErrorMsg += szCauses;
MessageBox(strErrorMsg);
}
END_CATCH_ALL;
댓글을 달아 주세요