Simplicty and flexibility!

DataEase - OLEDB updated and fixed to cover DFD 5.x, DFW 6.x, DFW 7.x, DE8.5

Started by DataEase
You will need to Sign In to be able to comment on the Blog!

DataEase - OLEDB updated and fixed to cover DFD 5.x, DFW 6.x, DFW 7.x, DE8.5

As part of our DataEase Infrastructure program have we restored/fixed/finished the OLEDB Provider and Consumer so it will read/write to DataEase itself.

The DataEase OLEDB Consumer and Provider was first developed during the DFW 6.x development cycle but it was never a success.

Partly because of its awkwardness and partly because it was an optional extra like WebPublisher.

It might have the "redoubtable" honour of being the least sold product in the DataEase catalogue in hard competition with WebPublisher.

Both were overpriced and underdeveloped.

We are not sure if we would recommend using OLEDB for anything even after this fix, but we wanted to do it anyway just to have completed the development cycle and harvest the knowledge from the project.

The idea of converting DataEase request to SQL and then back again to DataEase is not only ludicrous, it is also very inefficient and borderline stupid.

However.... given its limitation and the performance issues, it might be a useful little feature in the right hands.

It will give you an opportunity to access DFD 5.x, DFW 6.x, DFW 7.x and DFW 8.5 applications from inside a DFW 8.5 application.

So far we haven't done much in regards to alleviate the trouble of setting up this feature but we have added a couple of functions in SetCurrent() to help with maintaining the DBLink programatically.

SetCurrent("NewDatalink",enginename, databaseName, serverName, dblinkName) -- Create new DBLink

SetCurrent("DeleteDatalink",dblinkName) -- Delete DBLink

SetCurrent("RefreshDatalink",dblinkName) -- Refresh a DBLink and rebuild all tables etc.  

We will include the setup of this feature in the new Catalogue to be released as part of the full release of 8.5.

If you want to use this feature to access tables from other DataEase applications you need to do the follwing.

1. Create a directory where you store your connection documents (.UDL Files).
2. Create a empty text file called MyLink.UDL in this catalogue.
3. depending on if you run Windows 64 bit or Windows 32 bit you need to follow a different procedure.

WIndows x32.
Simply click on the UDL file in the catalogue and then  the Data Link Properties (OLEDBADM32) will pop up like below.

Windows x64

Open a DOS (Command) window and type in the following

c:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile c:\YourCat\YourFile.UDL

The above is one line but moved down due to size her.

You basically need to load the 32bit DLL oledb32.dll and configure your UDL file. 

NB! If you click directly on the UDL file as you can in x32 you will open oledb64 which will not be able to configure DataEase OLEDB which is 32 bit only!!!

When you have started Oledb32 Admin the following should happen.

If you do't see DataEase OLE DB Provider you have started the x64 version. Try again as above.

Click on the Provider Tab and select DataEase OLE DB Provider.

Then click on Connection and hit Browse.

Browse to the application in question and select it. If it is password protected key in a username and a password. Oledb will follow the same access restrictions as normal DataEase so if you key in a user with limited access your OLEDB connection will have the same limited access.

When you have keyed in all the necessary information, hit Test Connection and if you get  the message below you are ready to move to 4.

3.5 DataEase for DOS 5.x and DFW 6.5
If you want to configure a OLEDB session for the older versions of DataEase you need to do a couple of more settings.

Firstly you need to set up your OLEDB the same way you set up DFD 5.x and 6.x in a network.

You need to move the and denetwrk.owl files to your shared network catalogue and set DENAME and DEPATH.

You then need to remove CONFIGUR.DAT and DENETWRK.OVL from the DataEase 8.5/OLE/Six catalogue.

You can set DENAME and DEPATH as global environment variables as you would for DFD 5.x or DFW 6.x but you can also just type them in directly in the Data Link Properties as the OLEDB Consumer will then set them in the environment itself.

* If you are accessing a DE7 or DE85 Applicaiton you can completely disregard the DataEase 6.x Environement variables. 

4. You are now ready to start DE85, create a new application or use an existing application.

When you have opened the application from the catalogue select Database Link either form the file menu; Application/Database :Links.. or use the Chain Icon in the toolbar.

In Link Name you can type in any name that describe your link. 

In Engine Type select OLEDB Provider

In Server Name type in the full path and file name of your UDL file.

Database name will automatically be set to the same as Link Name so you can ignore this.

When you have keyed in this information you can hit Add and the link will be added.

You will see that it has worked if a table list appear in the Tables Available box.

You can now go to the catalogue and you will see that the ODBC/OLE Links tab is enabled and the Link with all the tables available will be there.


Stupidly enough the default documents for these tables are the same for the rest of DataEase  - A table view.

A table view in DataEase means that you read and present all the rows in this table by default. This is no problem when you read from a DataEase table but it is madness when you read from SQL which this is...

So before you do anything create a form for each table your are going to use and only search with meaningful filters etc. If not you can be waiting for a long time.

As this is conversion to/from SQL there is a lot of limitations and problems involved with special characters etc. DataEase allow you to use all kinds of crazy characters etc in table names/field names etc. and SQL don't  so if you want to use OLE DB you need to check and tailor the tables you will access so they comply with naming standards for SQL rather than the crazy DataEase naming standard which is a free for all ;-)

Have fun!

Written by DataEase 15/07/16 at 16:09:45 Dataease [{8}]FIVE