Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Anybody familiar with Install Shield 6

Options
  • 06-04-2001 1:36pm
    #1
    Registered Users Posts: 7,468 ✭✭✭


    We're trying to setup a ODBC datasource and it keep f@&king crashing our install. mad.gif

    Help?!


Comments

  • Registered Users Posts: 2,494 ✭✭✭kayos


    Yep I've used the package they call Install Shield I think it was back at 5 when I was using it. But any who what sort of odbc connection are you tring to setup? User/System/File I know I have some vba code that does this so what you could do is convert the code round to C and make a dll out of it and then in code just call your function to create the odbc. Which is a very nice reusable way of doing it...

    Hold up just found some C++ code to do it
    Function prototype: 
    
       BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest,
                                LPCSTR lpszDriver,
                                LPCSTR lpszAttributes); 
    hwndParent - This is the window that will be used as the owner of any dialog boxes which are created by either the Driver Manager or the specific ODBC Driver to obtain additional information from the user about the new data source. If there is not enough information provided in the lpszAttributes parameter, a dialog box will appear. This parameter may be NULL, see the reference for specifics. 
    
    fRequest - The operation to be performed. Possible values are: 
    
                          ODBC_ADD_DSN: Add new user data
                            source.
                          ODBC_CONFIG_DSN: Modify an
                            existing data source.
                          ODBC_REMOVE_DSN: Remove an
                            existing data source. 
    The following values are available in ODBC 2.53.0 or later 32-bit only: 
    
                          ODBC_ADD_SYS_DSN: Add a new
                            system data source.
                          ODBC_CONFIG_SYS_DSN: Modify
                            an existing system data
                            source.
                          ODBC_REMOVE_SYS_DSN: Remove
                            an existing system data
                            source. 
    lpszDriver - Driver description. As the documentation mentions, this is the name presented to the users rather than the physical driver (the DLL). You can determine the description of a driver using the ODBC Administrator program as follows: 
    
    
    Run the ODBC Administrator program.
    
    
    Choose Add. This will give you a list of installed drivers.
    
    
    The list contains driver descriptions. It is this description that you will use as the lpszDriver parameter. Note that the ENTIRE description is used [for example, "Excel Files (*.xls)"] including the file extension and parentheses if they exist in the description. 
    
    Optionally, you can examine the file ODBCINST.INI, which contains a list of all driver entries and descriptions in the section [ODBC Drivers]. 
    
    lpszAttributes - List of attributes in the form "keyname=value". These strings are separated by null terminators with two consecutive null terminators at the end of the list. These attributes will primarily be default driver-specific entries, which go into the ODBC.INI file for the new data source. One important key, which is not mentioned in the ODBC API reference for this function, is "DSN" which specifies the name of the new data source. The rest of the entries are specific to the driver for the new data source. Often times it is not necessary to supply ALL of the entries because the driver can prompt the user (if hwndParent is not NULL) with dialog boxes for the new values. You might want to explicitly supply default values so that the user is not prompted. 
    
    

    hope this helps

    kayos


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    It's a system DSN, and we already have a DLL that does this but the powers that be want it done from Install Shield. Bugger!

    But thanks anyway


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    Is this on Windows?

    If so the ODBC dsns are stored as keys in the registry, system dsn are stored in
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI and user dsns are stored in HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI

    It's easy enough to set registry keys from installshield, so that might do the trick.


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    <font face="Verdana, Arial" size="2">Do you work for DeVore?</font>
    Yep. Currently using InstallShield 6 a bit here as it happens. I have to say I like it alot, though for simpler installs I'd probably use SuperPIMP from nullsoft http://www.nullsoft.com/free/nsis/

    [This message has been edited by Talliesin (edited 10-04-2001).]


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    Isn't Cormac a skinny b@stard?!

    Anyway, Installshield seems to be a bit of a black art. This could be a good forum for InstallSheild development.


  • Advertisement
  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    I think InstallShield does a good job at letting you build a simple installer in a few minutes while giving you the scope to do more complicated stuff if needs be.

    Best $1000 of someone else's money I ever spent. smile.gif

    (SuperPiMP falls down once you get to anything more complicated than the kind of thing it was designed to do, but it is far simpler.)

    The thing is, would you count your problem as an InstallShield problem per se.?


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    <font face="Verdana, Arial" size="2">
    The thing is, would you count your problem as an InstallShield problem per se.?</font>


    What I think is happening is that we are referencing the API which is kicking of threads in the background. When I de-reference a dll, odbc32.dll in this case, it crashes IKernel.exe. Solution: wait for 5 seconds then de-reference.


    [This message has been edited by Evil Phil (edited 10-04-2001).]


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    Yep, it's on Windows NT. We are now using;

    SQLConfigDataSource in the odbccp32.dll which is doing everything for us at the moment.

    Pretty much does what you suggested Tas. (tanx) Do you work for DeVore?




    [This message has been edited by Evil Phil (edited 10-04-2001).]


Advertisement