VC 5.0的数据库使用与操作

发表于:2007-07-04来源:作者:点击数: 标签:
李隽 对数据库的操作并不是VC的最强项,很久以来使用VC来完成诸如对ODBC或其他数据库的连接,都需要许多繁复的语句写来写去。头痛!我们有许多优秀的数据库 开发 工具,不用VC也可以做一切事。但是…… 如今一切不同了,我们有了VC5.0这个好帮手,它提供你意
李隽

  对数据库的操作并不是VC的最强项,很久以来使用VC来完成诸如对ODBC或其他数据库的连接,都需要许多繁复的语句写来写去。头痛!我们有许多优秀的数据库开发工具,不用VC也可以做一切事。但是……  如今一切不同了,我们有了VC5.0这个好帮手,它提供你意想不到的完美的数据库连接与操作方法。想一想,连接网络服务器上的MSSQLServer、Sybase、Oracle……容易得可以与PowerBuilder媲美。从此,我们可以仅仅使用我们熟悉的VC环境,使用我们朝夕相处的MFC类库,而仅考虑如何将Sybase的数据直接在我的VC程序中得到最好的使用,不再需要转换文件在程序之间跳来跳去了。
  下面,我将介绍给大家两种最简单地使用、操作你后台数据库数据的方法。
  首先,我们知道Microsoft一种被称为通用数据库转换接口的标准,也就是其操作系统都提供的ODBC接口。VC5.0正是基于这种技术的普及与发展而提供数据库操作与连接功能,换句话说,VC对数据库的一切操作是要通过ODBC来完成的。从这一点来讲,它也许没有其他的数据库开发软件提供的私有接口速度快,可它是通用而且可脱离VC环境的,就是从Microsoft产品的角度来讲,它的兼容性与稳定性也是无可非议的。
  那么我们已经清楚第一件事要做什么了。非常正确,配置好我们的ODBC接口。你的服务器上一定安装了MS SQLServer、Sybase、Oracle或其他的某种数据库系统的Server版。那么好,在你本人的机器上安装相应数据库系统的Client版。一般情况,安装的同时,数据库系统会自动将其ODBC的Driver复制到你的机器中的。剩下的是将你的Client端连接好你的服务器,再在你的ODBC中建立一个连接后台数据库的新的DataSource(当然你也可以将这个工作留到VC中完成)。现在一切OK了,我们可以开始做程序了。
  一、建立一个Database Project
  什么是建立一个Database Project呢?实际上它等同于使用PowerBuilder操作一个Database,可以提供在后台服务器的数据库中可完成的一切操作。譬如:表的创建、删除、修改以及数据的填充,还可以创建视图、触发器、存储过程等。它全面支持标准SQL语言,可以将对表的操作直接转换为SQL语言。具体方法如下:
  1、打开App Wizard,在其Project项中有一项DatabaseProject,添加名称,可以选择加入一存在的项目中,也可以创建一独立项目,选择OK。
  2、这时会弹出一个与我们在ODBC设置时一样的对话框,要求选择适当的DataSource,并确认。
  3、一旦选择好就会进行相应数据库的连接,连接成功后会出现树状结构表现数据库的构成,可对相应的表、视、存储过程进行操作;如果失败,将显示连接不成功,不会出现数据库操作。
  二、建立一个新的Database
  建立一个DatabaseProject仅能完成对一个已建立的Database的操作,但如果没有Database就不能对其操作。没关系,我们可以通过NewDatabase,在可以连通的后台数据库服务上建立新的设备和数据库。
  1、打开App Wizard,在其Project项中有一项NewDatabase,添加名称,可以选择加入一存在的项目中,也可以创建一独立项目,选择OK。
  2、它将提示你连接那一个数据库软件,确认。
  3、连接成功后,会提示你建立设备、数据库和日志,你需要填入大小与名称。
  4、建好的数据库可让你做你要完成的操作。
  三、建立一个使用数据库数据的Project
  建立一个使用数据库数据的Project,就是实现你在程序中直接调用你数据库中数据的梦想。你可以只连接一个表,也可以同时连接许多表,数据库中的表项被直接转换为你熟悉的结构,操作起来是多麽的方便。它还提供你两种数据库的连接方式,即静态连接和动态连接。顾名思义,动态连接可以使你的数据随数据库的转变而转变。方法如下:
  1、打开AppWizard,添加名称,建立一个新的EXE执行程序,可以选择加入一存在的项目中,也可以创建一独立项目,选择OK。
  2、在步骤3中选择添加Database Source,会弹出我们熟悉的ODBC的DatabaseSource的选择框。如果我们有做好的数据源,选择即好;要是没有,那只能自己再建立一个新的数据源了(若不会建请参看有关手册,在此不加详述)。
  3、选好数据源,程序会自动去连接后台数据库,打开相应数据库,选择我们需要使用的一张或多张表,单击OK。
  4、其他步骤与建立其他EXE执行程序一致。
  以上操作完成之后,将数据库中的数据拿到手变得异常容易。在VC5.0中有一个CRecordSet类,一个或多个数据库被定义成一个CRecordSet的衍生类,数据库中的数据项被定义成CRecordSet衍生类中的成员变量。也就是说,对数据库的操作变成了对CRecordSet类的操作。下面简单介绍一些CRecordSet类的成员函数:
   CRecordset::Open();

  virtual BOOL Open( UINT nOpenType

  = AFX—DB—USE—DEFAULT—TYPE, LPCTSTR lpszSQL
= NULL,

  DWORD dwOptions = none );

  数据库的打开函数。

  nOpenType 可以是动态的(dynaset),也可是静态
的(snapshot);

  lpszSQL 一个标准SQL语句的字符串;

  dwOptions 数据库的操作方式。

  例句:

  rs.Open( CRecordset::dynaset,—T( "Select L—N
ame from Customer" ) );

   CRecordset::Close

  virtual void Close( );

  数据库的关闭函数。

  例句:

   if( !rsCustSet.Open( ) )

   return FALSE;

  rsCustSet.Close( );

  CRecordset::IsBOF

  BOOL IsBOF( ) const;

  光标是否在数据库头。

  CRecordset::IsEOF

  BOOL IsBOF( ) const;

  光标是否在数据库尾。

  CRecordset::MoveNext

  void MoveNext( );

  光标向后移一位。

  CRecordset::MovePre

  void MovePre( );

  光标向前移一位。

   CRecordset::AddNew

  virtual void AddNew( );

  数据库加一条新记录。

  

  CRecordset::Edit

  virtual void Edit( );

  将数据库新记录添加数据。

  例句:

  rsCustSet.Edit( );

  rsCustSet.m—dwCustID = 2795;

  rsCustSet.m—strCustomer = "Jones Mfg";

  if( !rsCustSet.Update( ) ) return;

   CRecordset::Update

  virtual BOOL Update( );

  将数据库记录更新。

   CRecordset::Delete

  virtual void Delete( );

  删除数据库中的一条记录。

  配合使用CRecordView类,可以将数据读出并显示在View中。
  综合以上的介绍,你是否觉得在VC5.0中完成数据库操作是一件简单易行的事?

back.gif (1185 字节)

 

原文转自:http://www.ltesting.net