Software 版 (精华区)

发信人: checcy (老巴夺), 信区: Software
标  题: VC 5.0的数据库使用与操作 
发信站: 哈工大紫丁香 (Fri Apr 10 01:04:17 1998), 转信

VC 5.0的数据库使用与操作 

李隽 
  对数据库的操作并不是VC的最强项,很久以来使用VC
来完成诸如对ODBC或其他数据库的连接,都需要许多繁复
的语句写来写去。头痛!我们有许多优秀的数据库开发工
具,不用VC也可以做一切事。但是……

  如今一切不同了,我们有了VC 5.0这个好帮手,它提
供你意想不到的完美的数据库连接与操作方法。想一想,
连接网络服务器上的MS SQLServer、Sybase、Oracle……
容易得可以与Power Builder媲美。从此,我们可以仅仅
使用我们熟悉的VC环境,使用我们朝夕相处的MFC类库,而
仅考虑如何将Sybase的数据直接在我的VC程序中得到最好
的使用,不再需要转换文件在程序之间跳来跳去了。

  下面,我将介绍给大家两种最简单地使用、操作你后
台数据库数据的方法。

  首先,我们知道Microsoft一种被称为通用数据库转
换接口的标准,也就是其操作系统都提供的ODBC接口。VC 
5.0正是基于这种技术的普及与发展而提供数据库操作与
连接功能,换句话说,VC对数据库的一切操作是要通过ODB
C来完成的。从这一点来讲,它也许没有其他的数据库开
发软件提供的私有接口速度快,可它是通用而且可脱离VC
环境的,就是从Microsoft产品的角度来讲,它的兼容性与
稳定性也是无可非议的。

  那么我们已经清楚第一件事要做什么了。非常正确,
配置好我们的ODBC接口。你的服务器上一定安装了MS SQL
Server、Sybase、Oracle或其他的某种数据库系统的Ser
ver版。那么好,在你本人的机器上安装相应数据库系统
的Client版。一般情况,安装的同时,数据库系统会自动
将其ODBC的Driver复制到你的机器中的。剩下的是将你的C
lient端连接好你的服务器,再在你的ODBC中建立一个连
接后台数据库的新的DataSource(当然你也可以将这个工作
留到VC中完成)。现在一切OK了,我们可以开始做程序了


  一、建立一个Database Project

  什么是建立一个Database Project呢?实际上它等同
于使用PowerBuilder操作一个Database,可以提供在后台
服务器的数据库中可完成的一切操作。譬如:表的创建、
删除、修改以及数据的填充,还可以创建视图、触发器、
存储过程等。它全面支持标准SQL语言,可以将对表的操作
直接转换为SQL语言。具体方法如下:

  1、打开App Wizard,在其Project项中有一项Databas
e Project,添加名称,可以选择加入一存在的项目中,也
可以创建一独立项目,选择OK。

  2、这时会弹出一个与我们在ODBC设置时一样的对话
框,要求选择适当的DataSource,并确认。

  3、一旦选择好就会进行相应数据库的连接,连接成
功后会出现树状结构表现数据库的构成,可对相应的表、
视、存储过程进行操作;如果失败,将显示连接不成功,
不会出现数据库操作。

  二、建立一个新的Database

  建立一个Database Project仅能完成对一个已建立的
Database的操作,但如果没有Database就不能对其操作。
没关系,我们可以通过New Database,在可以连通的后台
数据库服务上建立新的设备和数据库。

  1、打开App Wizard,在其Project项中有一项New Dat
abase,添加名称,可以选择加入一存在的项目中,也可以
创建一独立项目,选择OK。

  2、它将提示你连接那一个数据库软件,确认。

  3、连接成功后,会提示你建立设备、数据库和日志
,你需要填入大小与名称。

  4、建好的数据库可让你做你要完成的操作。

  三、建立一个使用数据库数据的Project

  建立一个使用数据库数据的Project,就是实现你在
程序中直接调用你数据库中数据的梦想。你可以只连接一
个表,也可以同时连接许多表,数据库中的表项被直接转
换为你熟悉的结构,操作起来是多麽的方便。它还提供你
两种数据库的连接方式,即静态连接和动态连接。顾名思
义,动态连接可以使你的数据随数据库的转变而转变。方
法如下:

  1、打开App Wizard,添加名称,建立一个新的EXE执
行程序,可以选择加入一存在的项目中,也可以创建一独
立项目,选择OK。

  2、在步骤3中选择添加Database Source,会弹出我们
熟悉的ODBC的Database Source的选择框。如果我们有做
好的数据源,选择即好;要是没有,那只能自己再建立一
个新的数据源了(若不会建请参看有关手册,在此不加详
述)。

  3、选好数据源,程序会自动去连接后台数据库,打
开相应数据库,选择我们需要使用的一张或多张表,单击O
K。

  4、其他步骤与建立其他EXE执行程序一致。

  以上操作完成之后,将数据库中的数据拿到手变得异
常容易。在VC 5.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中。

  综合以上的介绍,你是否觉得在VC 5.0中完成数据库
操作是一件简单易行的事?

  

   

                           返回主页

-- 
Chengyan Che - Software Freelancer, Harbin, P.R.China
-----------------------------------------------------------
Do you need a software developer for your project or just
for your killer money-making idea? Drop me a line and let
me know how I can help you out! 
mailto:checcy@public.hr.hl.cn
ICQ:5116726

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.370毫秒