读文本文件:
short strLen = 0;
char szFileName[MAX_PATH+1] = "";
if(GetModuleFileName(AfxGetInstanceHandle(),szFileName,sizeof(szFileName) /sizeof(char))>0)
{
strLen = strlen(szFileName);
for(int i = strLen;i > 0;i--)
{
if(szFileName[i] == '\\')
break;
szFileName[i] = 0;
}
}
strcat(szFileName,"ConnectionString.txt");
FILE *stream;
size_t rnum;
if( (stream = fopen(szFileName, "rt" )) != NULL )
{
rnum = fread( m_connectionString, sizeof( char ), 200, stream );
m_connectionString[rnum] = 0;
fclose( stream );
}
char szFileName[MAX_PATH+1] = "";
if(GetModuleFileName(AfxGetInstanceHandle(),szFileName,sizeof(szFileName) /sizeof(char))>0)
{
strLen = strlen(szFileName);
for(int i = strLen;i > 0;i--)
{
if(szFileName[i] == '\\')
break;
szFileName[i] = 0;
}
}
strcat(szFileName,"ConnectionString.txt");
FILE *stream;
size_t rnum;
if( (stream = fopen(szFileName, "rt" )) != NULL )
{
rnum = fread( m_connectionString, sizeof( char ), 200, stream );
m_connectionString[rnum] = 0;
fclose( stream );
}
取数据库中所有表名:
BOOL GetTableNames(CDatabase *pDB,CStringList &sl)
{
BOOL ret=FALSE;
CString s;
if (!pDB->IsOpen()) return FALSE;
HSTMT hstmt;
RETCODE nRetCode;
AFX_ODBC_CALL(::SQLAllocHandle (SQL_HANDLE_STMT,pDB->m_hdbc,&hstmt));
AFX_ODBC_CALL(::SQLTables(hstmt,NULL,0,NULL,0,(SQLCHAR*)_T("%"),SQL_NTS,NULL,0));
AFX_ODBC_CALL(::SQLFetch(hstmt));
sl.RemoveAll();
SDWORD cb;
do{
AFX_ODBC_CALL(::SQLGetData(hstmt,3,SQL_C_CHAR,s.GetBuffer(128),128,&cb));
s.ReleaseBuffer();
s.MakeUpper();
s.TrimRight();
sl.AddTail(s);
AFX_ODBC_CALL(::SQLFetch(hstmt));
}while(nRetCode!=SQL_NO_DATA);
ret=TRUE;
AFX_ODBC_CALL(::SQLFreeHandle(SQL_DROP,hstmt));
return ret;
}
{
BOOL ret=FALSE;
CString s;
if (!pDB->IsOpen()) return FALSE;
HSTMT hstmt;
RETCODE nRetCode;
AFX_ODBC_CALL(::SQLAllocHandle (SQL_HANDLE_STMT,pDB->m_hdbc,&hstmt));
AFX_ODBC_CALL(::SQLTables(hstmt,NULL,0,NULL,0,(SQLCHAR*)_T("%"),SQL_NTS,NULL,0));
AFX_ODBC_CALL(::SQLFetch(hstmt));
sl.RemoveAll();
SDWORD cb;
do{
AFX_ODBC_CALL(::SQLGetData(hstmt,3,SQL_C_CHAR,s.GetBuffer(128),128,&cb));
s.ReleaseBuffer();
s.MakeUpper();
s.TrimRight();
sl.AddTail(s);
AFX_ODBC_CALL(::SQLFetch(hstmt));
}while(nRetCode!=SQL_NO_DATA);
ret=TRUE;
AFX_ODBC_CALL(::SQLFreeHandle(SQL_DROP,hstmt));
return ret;
}