понеделник, 13 декември 2010 г.

Importing Paradox DB files into SQL Server via SSIS

A trivial task one might say when looking at the title of this blog post. He/she would probabaly be right if he/she already dealt with this type of problems. If you google the "net" for "Paradox" + "SSIS" you will end up reading forum threads where different people are reporting different Paradox-SSIS issues and other people recommend different approaches to eventually solve the general problem of "How to get my old Paradox DB tables into newer realational database (SQL server or else)".
The best howto describing in detail how one can solve the problem above was blog post concerning DBF to SQL server. An excellent step by step explanation where one can get wrong making SSIS reading DBF files and because Paradox DB is very similar to dBase you can use it to make things work for you (if you deal with Paradox DB). I will just add my 0.02$ to the topic by showing some screenshots and hope Google will list this post for the ones that are intereseted.

1. Using BIDS (SQL Server 2008) right click on Data Sources and then New Data Source menu item.
2. Select Microsoft Jet 4.0 OLE DB Provider for Provider drop down list.
3. In the Database File Name type path to where you Paradox DB files are e.g. E:\DATA. Do not include any db file name, but just the folder.


4. You are not ready to "Test Connection" yet as by default Jet Provider will try to read files as Access mdb files. Click the All button and in the Extended Properties cell type "Paradox 7.X". If your Paradox tables are version 4 or 5 you should type Paradox 4.X or Pradox 5.X respectively. Note that you will need BDE (Borland Database Engine) installed if you need to read Paradox 7 files. I don't believe this is documented somewhere but Microsoft Jet Engine reads version 7 files through BDE which is Borlands native driver for Paradox database.
5. Click on "Test Connection" button to check if your Data Source is configured and can read db files.

6. If the data source is configured and working you can the use OLE DB Source in a Data Flow task to read from the Paradox tables and do whatever SSIS will alow you to do with the data.