如何创建vcb文件,如何创建dbf文件

  如何创建vcb文件,如何创建dbf文件

  Dbf文件是著名的数据库文件,可以记录单个数据表的数据。毛泽发写过两篇关于如何操作dbf文件的文章:《C++老代码 -- DBF数据文件操作类DBFile》(http://blog . . net/maozefa/archive/2007/09/16/1787074 . aspx)和C语言版DBF本地数据库文件操作函数(http://blog . . net/maozefa/archive/2008/01/11/2034688 . aspx)。首先感谢毛泽法大师的无私奉献。同时,我也看到了一些不足。第一,代码不兼容。比如《C++老代码 -- DBF数据文件操作类DBFile》中的代码是在Borland C 3.1编译器下编译的,很难移植到VS环境中。其次,需要测试创建的dbf文件的标准。我曾经把《C++老代码 -- DBF数据文件操作类DBFile》的代码移植到VC 6.0,成功创建了dbf文件。但是我用Microsoft Visual Foxpro 6.0打开的时候,只能看到字段名,看不到数据(可能这涉及到dbf文件的版本)。基于此,我想到了另一种操作dbf文件的方法(有点投机取巧,别送我砖头!呵呵)。

  我看到dbf文件结构实际上相当复杂。我觉得直接创造出来肯定很难。你能想出别的办法吗?我的想法是:先创建一个空的dbf文件,然后连接ado进行修改,从而达到创建dbf文件的目的。具体步骤如下:

  1.使用Microsoft Visual Foxpro 6.0创建一个名为table1的空dbf文件。DBF有一个名为field1的字段,把这个文件放在exe文件的输出文件下,比如VS项目的debug文件夹下。

  2.使用Windows API函数:GetModuleFileName获取exe文件输出路径,然后获取table1.dbf的路径

  3.使用ado连接table1.dbf连接成功后,可以操作dbf文件,比如修改字段,插入记录等等。

  在用ado连接dbf文件之前,还可以使用Windows API函数来复制和重命名dbf文件。

  //附上ado连接dbf文件的代码:

  _ ConnectionPtrm _ pConn//连接到数据库接口

  CStringstrSRC//strrc是数据库连接字符串

  if(失败(m_pConn。CreateInstance(ADODB。连接)))).{

  AfxMessageBox(未能创建连接对象!);

  返回false;

  }

  //获取连接字符串,csPath是dbf文件所在的文件夹

  str src=GetVFFreeTableSRCString(cs path);

  _ bstr _ tbstrSRC(strSRC);//将连接字符串转换为接口识别格式*

  if(失败(m_pConn- Open(bstrSRC,,,-1))).{

  AfxMessageBox(未能打开数据库!);

  返回false;

  }

  //上面使用的GetVFFreeTableSRCString函数代码如下:

  CStringGetVFFreeTableSRCString(CStringstrFolderName)

  .{

  CStringstrSRC

  str RC= Provider=msdas QL . 1;DRIVER=Microsoft visual foxprodriver;;

  strrc= source type=DBF;;

  strSRC= SourceDB=

  strSRC=strFolderName

  strrc=/;

  str RC=;UID=SAPWD=;

  returnstrSRC

  }

如何创建vcb文件,如何创建dbf文件