Does an Application Create an ODBC Driver?

Does an Application Create an ODBC Driver?
Think3 TilakGovind's picture

For some applications which have ODBC drivers, you may question if the application has created an ODBC driver or not? This tip will help you answer that question.

Go to Control Panel > Administrative Tools. Double click ODBC and check User DSN and System DSN and File DSN. If the application used drivers, then there will be entries in any one of the DSN.

OR

After installing the application go to C:\windows \ click ODBC.ini and checks if particular applications need any driver.

3.30435
Average: 3.3 (23 votes)

Easy way to open ODBC tab

piyushnasa's picture

Easy way to open ODBC tab is to just type "odbcad32" in run command.

Some more useful shortcuts:

for services: services.msc
for Add/remove programs: appwiz.cpl
for registry editor: regedit

Easier...

Wouldn't the easiest way be to open the MSI with Wise Packager or something along those lines and check the ODBC table of the MSI?

Yes it is, but I myself

piyushnasa's picture

Yes it is, but I myself have encountered this problem many times, that ODBC does not get captured in WISE. Don't know about version 7 and above, but when I was using WISE 5.0 and 5.5, i had this problem faced 3 to 4 times.

Handling ODBC entries..

Well, I would second this point. Because we faced the problem many a times to handle ODBC entries.
Actually, the ODBC keys gets captured in Wise, but the problem is that it does not captures one key which acts as an index between odbcad32.exe and the machine. Hence, it does look that, WISE is not able to capture any of the ODBC entry.

Thats why, whenever you capture an ODBC application, DO follow these below steps.

Step 1: Install the source on a a base machine.

Step 2: export the additional entries from HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers and import it into the package. Many a times, wise will not be able to capture this entry.

Step 3: Import this registry key into the package and the application ODBC entries appears fine.

Cheers'
Vijay

ummmmmmm..No offence but Why not use odbc tables ?

blacklisted_packager's picture

Hi Vijay ,
The method you have stated to install odbc drivers is correct but i beleive odbc tables (ODBCDriver in particular)are better way of doing it.
Personally i feel odbc registry should be the last resort for installing the driver.

Regards
Blacklisted Packager

ODBC through registry is best

piyushnasa's picture

Personally,I feel addition of ODBC through registry is the best option for long term. I can think of these reasons as of now: First, It is a sure shot way of installing the ODBC. I have seen cases in which even after perfect addition in ODBC table the ODBC is not created as we require it. It is not because of the tool, but some applications tend to act weird and not install ODBC properly. Since even after you add the entries in ODBC tables, it will end up adding to registries, then why not directly add them there...
Second point for my support will be for upgrades and changes. If you want to change one small thing in ODBC entry then rather than updating the whole ODBC component, it will be easier and time efficient to replace on registry. And talking about upgrading the ODBC package, I have even come across situation in which the ODBC does not get upgraded. The only solution then would be to keep RemoveExistingproduct action before install initialize to remove the earlier package and then install the new one, or to remove the ODBC component and add the ODBC through registry.

If you would like to share your advantages of using ODBC table, then please let us know and help us in understanding its better use.

Agree

looeee's picture

Yes
I have always preferred the ODBC entries to be in the registry.

Another disadvantage to the ODBC table is that it causes the DLLs to be loaded at install-time. That's something that we should try to avoid because of dependencies. Quite often it causes the install to fail.

Put the datasource registry in a separate component so that you can share it accross packages (if necessary)

The ODBC driver, files and registry, should all be put in an MSM for reuse.

looeee

The application is having .sys & .inf files in the file table...

Hi Tilak....

we found an application is having .sys & .inf files in the file table... In that case we need to create drivers...
Could You please explain how to create drivers?

Regards,
Venkat

You can use DPinst or DifxApp

piyushnasa's picture

You can use either DPINST or DifxApp method to create driver packages.. Driver package creation is a cakewalk with these tools. For details on these you can refer these documents. They are well defined documents. If you face a problem, do post your query. We will be happy to help you..

http://juice.altiris.com/article/1079/how-to-packa...

http://juice.altiris.com/article/4756/creating-ins...

-Piyush