콘솔 프로그램과 ODBC 연결
페이지 정보
본문
콘솔에서 돌아가는 C 프로그램을 작성하고 있습니다. MS-SQL 서버와 연결하려면 어떻게 해야 합니까.
MFC를 이용한 응용 프로그램을 사용해 콘솔 프로그램을 만듭니다. 그런 후에 다음처럼 ODBC를 연결하면 됩니다.
<리스트 1>콘솔 프로그램을 ODBC에 연결
// 선언
CDatabase m_dbSeaDB;
// 구현
// "Sss"는 ODBC에서 등록된 이름
// _T("ODBC; DSN = Sss; UID = dba; PWD = sql") 는
// ODBC를 열기 위한 명령
m_dbSeaDB.Open("_T("Sss"), FALSE, FALSE, _T("ODBC; DSN = Sss; UID = dba; PWD = sql"));
// 다음은 테이블을 열기 위한 예제입니다.
// 위, 경도의 Long값 자료 두 개에서 코드가 007인 자료만 찾을 조건
// 위, 경도는 문자열
CRecordset ExamSet(&m_dbSeaDB);
try {
ExamSet.Open(
CRecordset::forwardOnly, "SELECT Longi, Lati, Value1, Value2" \
FROM MyTable WHERE Code = '007' "
);
}
catch(CDBException *e) {
MessageBox(e->m_strError, "잘못!", MB_ICONSTOP);
e->Delete();
return;
}
// 읽어들인 자료를 핸들링
CString strLo, strLa;
CDBVariant varVel_e;
CDBVariant varVel_n;
while(!ExamSet.IsEOF()) {
// 0, 1, 2, 3 은 SELECT 문의 순서
ExamSet.GetFieldValue((short)0, strLo);
ExamSet.GetFieldValue((short)0, strLa);
// SQL_C_SLONGdms Value1, Value2를 Long으로 읽어들임.
ExamSet.GetFieldValue((short)2, varVel_e, SQL_C_SLONG);
ExamSet.GetFieldValue((short)3, varVel_n, SQL_C_SLONG);
ExamSet.MoveNext();
}
MFC를 이용한 응용 프로그램을 사용해 콘솔 프로그램을 만듭니다. 그런 후에 다음처럼 ODBC를 연결하면 됩니다.
<리스트 1>콘솔 프로그램을 ODBC에 연결
// 선언
CDatabase m_dbSeaDB;
// 구현
// "Sss"는 ODBC에서 등록된 이름
// _T("ODBC; DSN = Sss; UID = dba; PWD = sql") 는
// ODBC를 열기 위한 명령
m_dbSeaDB.Open("_T("Sss"), FALSE, FALSE, _T("ODBC; DSN = Sss; UID = dba; PWD = sql"));
// 다음은 테이블을 열기 위한 예제입니다.
// 위, 경도의 Long값 자료 두 개에서 코드가 007인 자료만 찾을 조건
// 위, 경도는 문자열
CRecordset ExamSet(&m_dbSeaDB);
try {
ExamSet.Open(
CRecordset::forwardOnly, "SELECT Longi, Lati, Value1, Value2" \
FROM MyTable WHERE Code = '007' "
);
}
catch(CDBException *e) {
MessageBox(e->m_strError, "잘못!", MB_ICONSTOP);
e->Delete();
return;
}
// 읽어들인 자료를 핸들링
CString strLo, strLa;
CDBVariant varVel_e;
CDBVariant varVel_n;
while(!ExamSet.IsEOF()) {
// 0, 1, 2, 3 은 SELECT 문의 순서
ExamSet.GetFieldValue((short)0, strLo);
ExamSet.GetFieldValue((short)0, strLa);
// SQL_C_SLONGdms Value1, Value2를 Long으로 읽어들임.
ExamSet.GetFieldValue((short)2, varVel_e, SQL_C_SLONG);
ExamSet.GetFieldValue((short)3, varVel_n, SQL_C_SLONG);
ExamSet.MoveNext();
}
댓글목록
등록된 댓글이 없습니다.