[C++Builder/Delphi初学者指南] 用C++Builder、Delphi转换数据表

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

[C++Builder/Delphi初学者指南] 三分秒完成数据表的转换

西安 warton

笔者在先前写程序时,经常遇到数据库的转换问题,一般的方法是用SQL语句将数据从表中取出,再insert到另一个表。这个方法比较通用,在任何编程语言中都可以使用。但这样比较麻烦,需要编程者有一定的经验。

笔者在使用C++Builder和Delphi之后,发现它们提供的BatchMove控件就能完成数据表的转换。而且操作相当方便,在数分钟之内就能完成!

下面,我来做一个实验:将BCDEMOS(Paradox库,CB,Delphi自带)中的Customer.db转换为test.Mdb(MicroSoft ACCESS库)中的test(表)。

1. 建立一个新工程,选择New-àApplication;

2. 添加控件:Table1,Tabel2,DataSource1, DataSource2,DBGrid1, DBGrid2,BatchMove1,Button1,Button2

3. 建立一个MDB文件,打开该文件,建立一个新表,字段只写一个Custno,类型为数字(这里使用的是ACESS的MDB文件数据库,字段不用和paradox表一致,只要第一个字段相同就行,或者只要有一个空表就行),并为该文件配置ODBC。笔者这里是D:\test.mdb(笔者的odbc dsn设置为access,数据库为:D:\test.mdb,如下图:)。

4. 在C++Builder/Delphi的SQL Explorer中new 一个数据库别名:ACCESS,并选择其odbc dsn为刚才设置的ODBC数据源。

5. 分别为各控件设置属性(只需在控件上设置即可,不用在代码中写了):

Table1

Table1: TTable

Active = True

DatabaseName = 'BCDEMOS'

TableName = 'customer.db'

Table2

Table2: TTable

DatabaseName = 'ACCESS'

TableName = 'test'

TableType = tDefault

DataSource1

DataSource1: TDataSource

DataSet = Table1

DataSource2

DataSource2: TDataSource

DataSet = Table2

BatchMove1

BatchMove1: TBatchMove

Destination = Table2

Mode = batCopy //很重要,表明是复制模式

Source = Table1

DBGrid2

DBGrid2: TDBGrid

DataSource = DataSource1

DBGrid1

DBGrid1: TDBGrid

DataSource = DataSource2

Button1

Button1: TButton

Caption = '转换'

Button2

Button2: TButton

Caption = '刷新'

6.为Button1及Button2添加事件:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

BatchMove1->Execute();//执行转换

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Table2->Open(); //打开表,可以在DBGrid2中看到转换的结果

}

最后,编程并运行程序,点击Button1等程序执行完毕后,点击Button2,你会发现Paradox库中的Customer.db中的数据全都导入到了ACCESS库 test.mdb的test表中了。

使用这种方法操作相当简单,只需要简单地设置几个相关的性就OK了,有兴趣的朋友不妨试试。(本测试程序在windows XP Home Edition ,C++Builder 6下完成)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有