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

来源:互联网 发布:德勤税务工资.知乎 编辑:程序博客网 时间:2024/05/18 01:30

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

西安 warton

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

       笔者在使用C++BuilderDelphi之后,发现它们提供的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,类型为数字(这里使用的是ACESSMDB文件数据库,字段不用和paradox表一致,只要第一个字段相同就行,或者只要有一个空表就行),并为该文件配置ODBC。笔者这里是D:/test.mdb(笔者的odbc dsn设置为access,数据库为:D:/test.mdb,如下图:)

4.    C++Builder/DelphiSQL Explorernew 一个数据库别名: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.为Button1Button2添加事件:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

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

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{

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

}

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

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

原创粉丝点击