I am packaging a source EXE of a tyre management application. When the EXE installs, it  extracted an extra SQL Server R2 Native Client MSI and installs the MSI.

I captured them together and made a new MSI, but when I install the new MSI, I received error:

Error1918, Error installing ODBC driver: SQL Server Native Client 10.0. ODBC error 13: The setup routines for the SQL Server Native Client 10.0 ODBC driver could not be loaded due to system error code 126: The specified module could not be found. (C:\Windows\syswow64\SQLNCL~1.DLL|sqlncli10.dll). Verify the file SQL Server Native Client 10.0 exists and that you can access it.

The above dll does exist when I open the syswow64 folder.

I also received anther error:

Error:1904. Module C:\Windows\SysWOW64\1033\sqlnclir10.rll failed to register HRESULT -2147024769. Contact your support personnel.

The above rll does exist.

I even tried to capture the package then do not delete anything then compile to a new MSI but still recieved the same error.

My questions are:

1. Is it a good practice to capture the source EXE and the integrated SQL client MSI together?

2. If yes, what do the two errors mean?

3. If no, how to package them separately then? Thanks!

Answer Summary:
Thanks for all your help guys. I packaged the main application EXE separately from the SQL Native Client msi. It worked beautifully. Actually packaging them separately is much easier than packaging them into one package because far less files and regitry keys got captured. Thanks again!
Cancel
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

3

1. no

2. -

3. extract the MSI for SQL client, install it separately, then run the exe over that. This assumes the main application is not an MSI in itself that also gets extracted

Answered 08/13/2012 by: pjgeutjens
Red Belt

Please log in to comment

Answers

2

Error 1918 means that the ODBC entries in your tables or in registries are not proper.

If you are configuring through registeries, then check for HKLM\Software\ODBCINST.INI and HKLM\Software\ODBCINST.INI\ODBC Drivers, that your driver exists.

Else if you are configuring through tables, then check for ODBCAttribute table that Setup and Driver attributes has the path to the dll.

Answered 08/13/2012 by: SilentKiller
Orange Belt

Please log in to comment
2

Thanks for all your help guys. I packaged the main application EXE separately from the SQL Native Client msi. It worked beautifully. Actually packaging them separately is much easier than packaging them into one package because far less files and regitry keys got captured. Thanks again!

Answered 08/14/2012 by: nbafifa02
Senior Yellow Belt

Please log in to comment
2

Do not think about capturing any msi in future also until and unless it is mandatory and no other go..

Answered 08/14/2012 by: jagadeish
Red Belt

Please log in to comment
1

Go to MS's site and download the client for 64bit and try using that to install prior to installing tyre management application

http://www.microsoft.com/en-gb/download/details.aspx?id=30440

Answered 08/13/2012 by: SMal.tmcc
Red Belt

Please log in to comment
1

Hi,

I would extract the SQL Client seperately and treat that as a dependency package for the main application.

Check if main applciation is a exe or MSI and based on that take necessary actions.

If its a exe ,take the capture to have a MSI and make sure to install the SQL client before taking the first snapshot.

 

 

Answered 08/13/2012 by: sumitsingh1984
Second Degree Green Belt

Please log in to comment
Answer this question or Comment on this question for clarity