Monday, July 16, 2012

An Introduction to the TBatchMove Component in Delphi and C++ Builder

An Introduction to the TBatchMove Component in Delphi and C++ Builder

Abstract: TBatchMove can move data between tables with the same database or a different database

 
Problem:
What is the TBatchMove component and how do I use it with InterBase 
(or any other database)?

Solution:
An Introduction to the TBatchMove component
=====================================

1. What is it?

TBatchMove is a VCL component that lets you perform operations on 
groups of records in a table. The operations are named with intuitive 
names that basically tell what they do.  

Listed below are the operations or "modes" that the TBatchMove 
component supports.  

- batAppend     => 
   appends all records from the source table to the end of the destination
   table.

- batAppendUpdate     =>  
   Appends all records from the source table to the end of the destination
   table and updates those records with the same primary index in the
   destination table with the same records from the source table.
 
- batCopy     =>  
  Copies a table and its records to a new table

- batDelete     =>  
  Delete all records in the destination table that also appear in the 
  source table.

- batUpdate      =>  
  Update existing records in the destination table with their counterparts
  in the source table.


2. How do I  use it?
Listed below are steps to setup and run a TBatchMove component to 
upsize Paradox data to InterBase.

a.  Put two TTable objects on the form, one for source and one for 
destination.
1. Click on "Data Access" tab.

2. Click on table icon.

3. Click on form.

4. Press  to go to the Object Inspector.

5. Define the Database property for table1 to be the BDE alias that 
points to the directory where Paradox tables are located.  In this case, 
we are using the DBDEMOS alias hat is installed by default when you 
do a full install of Delphi 3. 

6. Define the TableName property in object inspector for table1 to be the 
Paradox table name, In this example, the table name will be the "orders" 
sample table that comes with Delphi.  Since we have already specified the 
location of the tables, you can easily fill in the TableName property setting 
by selecting the table from the picklist of the TableName property.

7. Repeat steps 2.a.1 - 2.a.4 for table2

8. Define the database on table2 to be an alias that points to the InterBase
database, in this case employee.gdb, by selecting the BDE alias that points
to the employee database.

9. Define TableName  property for table2 to be the table name you want 
created in InterBase. For simplicity, call it "orders" as well.

10. Configre the TBatchMove component
a.   Put the  TBatchMove component on the form.
1. Click on the Mode property's edit box.

2. Click on the BatchMove icon.

3. Click on the form.

b.  Define the source and destination for TBatchMove
1. Hit  to go to the object inspector.

2. Set the Source property of TBatchMove to be table1.

3. Set the Destination property of TBatchMove to be table2.

d.   Specify the mode for TBatchMove
1.  Click on the Mode property's edit box.
2.  Click on the down arrow that appears to get a picklist of modes to 
     choose from.
3.  Click on  "batCopy" to select it from the list.

d. Activate TBatchMove 
1. Right click on TBatchMove component
2. Click on  "Execute" on the pop-up menu that appears.

e. What happens when TBatchMove fails?

You can tell TBatchMove to document what happened when you run 
a batch move operation by setting the following properties. They tell 
Delphi to create a local Paradox table containing records that were 
not successfully part of the batchmove operation.

ChangedTablename  => Records that were modified by the batch 
                                    move operation

KeyvioltableName  => Records that could not be added because they 
                                 violated a uniqueness constraint.

ProblemTableName  => Records that could not be added for one reason
                                   or another.

More at http://edn.embarcadero.com/article/25620

Welcome to Delphi... Delphi... Delphi

I have been a Delphi Developer since Delphi 3 when I finally decided on Delphi in 1996 as my programming language of choice for the Windows 32 environment. So what have I created with Delphi ?

Would you believe that I had single-handedly created a full ERP2 system comprising ERP+CRM where ERP=Sales Distribution+MRP+ Procurement Management+Planning & Production +Finacial Management + Human Resources Management System.

Since 15th February 2009, we have visitors from more than 60 countries including Malaysia, United States, Brazil, Italy, Australia, India, Turkey, Russian Federation, Spain, Indonesia, Hungary, South Africa, Germany, Mexico, Argentina, Singapore, Saudi Arabia, Colombia, Czech Republic, Canada, France, Croatia,Thailand, Bulgaria, Slovenia, Hong Kong, Poland, Sri Lanka, Chile, Japan, Austria, Ukraine, Azerbaijan, Ireland, Tunisia, Greece, Taiwan, Egypt, Bolivia, Paraguay, Iran, Islamic Republic , Morocco, Angola, Belgium, Portugal, Norway, Venezuela, United Arab Emirates, Algeria, Korea, Republic Of, Slovakia, Georgia, Lebanon, Macedonia, Sweden, Philippines, Vietnam, Dominican Republic