Display.cpp
上传用户:lkd6667
上传日期:2015-05-13
资源大小:1448k
文件大小:5k
源码类别:

其他数据库

开发平台:

C/C++

  1. #include"Display.h"
  2. #include"iostream"
  3. #include <afx.h>
  4. #include <stdlib.h>
  5. #include<direct.h>
  6. extern char CurLocation[256];                                   //<---存有当前正在使用的表的相对路径,
  7. extern char CurRelationName[33];                                //<---存当前表的表名
  8. extern char CurDB[33];
  9. void ShowTable()
  10. {
  11.     CFileFind finder;
  12.     int iRowN = 0;
  13.     char loc[256];
  14. CString Dbn(CurDB);
  15.     int iNameLen = 0,iTemp = 0;
  16. std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';
  17. std::cout<<"| Tables in ";
  18.     std::cout << (LPCTSTR) Dbn;
  19.     int strNum = Dbn.GetLength();
  20. for(iTemp = 19 - iNameLen-strNum;iTemp != 0;iTemp--)
  21.  std::cout<<' ';
  22. std::cout <<"|"<<'n';
  23. std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';
  24. strcpy(loc,CurLocation);
  25. strcat(loc,"*.dbf");
  26.     int bWorking = finder.FindFile(loc);
  27. while(bWorking)
  28. {
  29.  bWorking = finder.FindNextFile();
  30.  if (finder.IsDots())
  31. continue;
  32.  iRowN++;
  33.          CString str = finder.GetFileTitle();
  34.          iNameLen = str.GetLength(); 
  35.  std::cout <<"| "<< (LPCTSTR) str;
  36.  for(iTemp = 29 - iNameLen;iTemp != 0;iTemp--)
  37.  std::cout<<' ';
  38. std::cout <<"|"<<'n';
  39. }
  40. std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';
  41. std::cout<<"There are" <<iRowN<<" rows in the table!";
  42. finder.Close();
  43. }
  44. void ShowDB()
  45. {
  46. CFileFind finder;
  47. int iRowN = 0;
  48.     int iNameLen = 0,iTemp = 0;
  49. std::cout<<"These are the databases !n";
  50.     int bWorking = finder.FindFile("..\Data\*.*");
  51. std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';//<---计32个字符
  52. std::cout<<"| Database                     |"<<'n';
  53. std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';//<---计32个字符
  54. while(bWorking)
  55. {
  56.       bWorking = finder.FindNextFile();
  57.   if (finder.IsDots())
  58.          continue;
  59.   
  60.       if (finder.IsDirectory())
  61.       {
  62.  iRowN++;
  63.          CString str = finder.GetFileTitle();
  64.  iNameLen = str.GetLength(); 
  65.  std::cout <<"| "<< (LPCTSTR) str;
  66.  for(iTemp = 29 - iNameLen;iTemp != 0;iTemp--)
  67.  std::cout<<' ';
  68. std::cout <<"|"<<'n';
  69.   }      
  70. }
  71.     std::cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<'n';//<---计32个字符
  72. std::cout<<"There are" <<iRowN<<" rows in the database!";
  73. finder.Close();
  74. }
  75.  int CheckDB(char* pDb)
  76.  {
  77.   CFileFind finder;
  78.   char loc[256];
  79.   strcpy(loc,"..\Data\");
  80.   strcat(loc,pDb);
  81.   int  bWorking = finder.FindFile(loc);
  82.   int iNameLen = 0,iTemp = 0;
  83.   return bWorking;
  84.  }
  85.    int CheckTB(char* pTb)                   //<---检查tb是否存在
  86.  {
  87.   CFileFind finder;
  88.   char loc[256];
  89.   strcpy(loc,"..\Data\");
  90.   strcat(loc,CurDB);
  91.   strcat(loc,"\");
  92.   strcat(loc, pTb);                         //<---该目录下所有的文件
  93.   strcat(loc , ".idx");                     //<---该目录下所有的文件
  94.   int  bWorking = finder.FindFile(loc);
  95.   int iNameLen = 0,iTemp = 0;
  96.   return bWorking;
  97.  }
  98.  void DelDB(char* pDb)
  99.  {
  100.     char loc[256];
  101. char locfile[256];
  102. CFileFind finder;
  103. strcpy(locfile,pDb);                    //<---所要删除的目录的路径  
  104. strcpy(loc,pDb);                        //<---所要删除的目录的路径
  105.     strcat(locfile , "\*.*");              //<---该目录下所有的文件
  106. int bWorking = finder.FindFile(locfile);
  107. while(bWorking)
  108. {
  109.       bWorking = finder.FindNextFile();
  110.   if (finder.IsDots())
  111.          continue;
  112.   
  113.       if (!finder.IsDirectory())
  114.       {
  115.  CString str = finder.GetFilePath();
  116.  CFile::Remove( str );
  117.   }      
  118. }
  119. finder.Close();
  120.     //删除空目录--->
  121.     if( _rmdir( loc ) == 0 )
  122.      std::cout<<"Directory "<<loc<<" was successfully removedn";
  123.     else 
  124.   std::cout<<"Can not remove database"<<loc<<"n";
  125.     ResetDBinfo();                          //<---删除数据库之后将全局路径重新设置
  126.     
  127.  }
  128.  void ResetDBinfo()
  129. {
  130. strcpy(CurLocation,"..\data\");
  131. strcpy(CurRelationName,"");
  132. strcpy(CurDB,"");
  133. }
  134.   void DelTB(char* pTb)
  135.  { char loc[256];
  136. char locfile[256];
  137. CFileFind finder;
  138.   strcpy(locfile,pTb);                      //<---locfile为所要删除的table的目录
  139.   strcpy(loc,locfile);                      //<---locfile为所要删除的table的目录
  140.   strcat(locfile , ".idx");                 //<---该目录下所有的文件
  141. int bWorking = finder.FindFile(locfile);
  142. while(bWorking)
  143. {
  144.   bWorking = finder.FindNextFile();
  145.   if (finder.IsDots())
  146.          continue;
  147.   if (!finder.IsDirectory())
  148.       {
  149.  CString str = finder.GetFilePath();
  150.  CFile::Remove( str );
  151.   }      
  152. }
  153. finder.Close();   
  154.   strcat(loc , ".dbf");                     //<---该目录下所有的文件
  155.   bWorking = finder.FindFile(loc);
  156. while(bWorking)
  157. {
  158.   bWorking = finder.FindNextFile();
  159.   if (finder.IsDots())
  160.          continue;
  161.   if (!finder.IsDirectory())
  162.       {
  163.  CString str = finder.GetFilePath();
  164.  CFile::Remove( str );
  165.       }      
  166. }
  167. finder.Close(); 
  168.  }
  169.  void CreateDB(char* pDb)
  170.  {
  171. char loc[256];                          //所要创建的目录的路径
  172. CFileFind finder;
  173. strcpy(loc,"..\Data\");
  174.     strcat(loc,pDb);
  175.     //创建目录
  176.     if( _mkdir( loc ) == 0 )
  177.      std::cout<<"database "<<pDb<<" was successfully createdn";
  178.     else 
  179.   std::cout<<"Can not create database "<<pDb<<"n";
  180. finder.Close();
  181.  }