现在的位置: 首页 > 综合 > 正文

[代码]读取文本文件和取数据库表名

2011年08月29日 ⁄ 综合 ⁄ 共 1473字 ⁄ 字号 评论关闭
读文本文件:
    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, sizeofchar ), 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;   
}
  

抱歉!评论已关闭.