Skip to Content
avatar image
Former Member

CR2011 is an 32bit app? Why it has 64bit runtime?

We are upgrading our product from 32bit to 64bit.

Once in our 32bit product, we provide an 32bit OpenAccess data source to let CR2011 to create Crystal Report by connecting to the 32bit OpenAccess data source via ODBC.

Now for our 64bit product, we provide an 64bit OpenAccess data source, now we cannot use CR2011 to connect it because the ODBC administrator 32bit will be invoked via ODBC.

So we want to search to see if there is CR2011 64bit, there is 64bit runtime installation, but there is no help for the above problem. Would you please help to give us some suggestion? Thanks a lot!

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Best Answer
    avatar image
    Former Member
    Jul 28, 2015 at 09:56 AM

    Hi Don,

    Thanks your clarification, it seems there is a long way for us to go.

    And I have another problem for CR2011 64bit runtime, please let me know if I need open a new discussion here.

    It is also the upgrade 32bit to 64bit problem: We have an c# application, it use CR runtime to get data by connecting to web service located on Tomcat Server via CR "XML and Web Service". This works in 32bit.

    To upgrade to 64bit, I change the code ref to CR2011 64bit runtime, found that there are no below two refs which we used in 32bit.

    CrystalDecisions.Enterprise.Framework

    CrystalDecisions.Enterprise.InfoStore

    Run the C# app, run below code get runtime error "Failed to load database information.error...". Would you please help to review it? Thanks a lot!

    Regards,

    Jie


    RuntimeError.png (50.5 kB)
    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Don Williams

      Hi,

      I uninstall all 32bit/64bit msi and exe, then install below:

      CRforVS_13_0_10.exe

      CRforVS_crdbxml_13_0_10.zip

      Now, compile and run my report which use "XML and web services" as data source successfully.

      The reason should be it cannot find the "crdb_xml.dll" in my case. Thanks all!

      Have a nice weekend!

      Regards,

      Jie

  • avatar image
    Former Member
    Jul 24, 2015 at 05:47 AM

    Hi,

    Thanks your suggestion!

    I tried to provide both 32bit and 64bit version of the ODBC driver. Create a DSN using the 32bit driver and test connection success, Now the CR designer can see my DSN, but when in Database Expert, I add the DSN, get below error:

    Logon failed.

    Details:IM001:[Microsoft][ODBC Driver Manager] Driver does not support this function.

    Is it that the OpenAccess 32bit client driver cannot connect/work with the OpenAccess 64bit Server? Our product is 64bit, so it should be the 64bit OpenAccess Server.

    Please let me know if there is any misunderstanding. Thanks!

    Jie

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Jie,

      Thunking is basically converting 64 API's and methods/classes result sets to 32 bit mode. Typical Loss of Data warnings to go with that coding also.

      Basically you need to build your ODBC driver to support both 32 and 64 bit modes. If that is not possible then write a 32 bit ODBC client that is capable of connecting to a 64 bit server.

      CR Designer will use the 32 bit client for designing reports and the SDK and/or BOE Server will use the 64 bit client to connect to the DB. Or if using the CR SDK in 64 bit mode it too will use the 64 bit client.

      Also of the connection requirements is outside of CR, CR assumes the client is working and configured for 32 bit applications.

      ODBC trace can be a little misleading also, CR will query the DB for various API's and will return an error if the ODBC driver is not capable of doing that request. So it may simply be something we are looking for and your driver is not able to provide the info requested.

      So the first error suggests your driver is not UNICODE compliant. maybe:

      SQLDriverConnectW ( W is the Wide declaration for UNICODE )

      ...

      DIAG [IM001] [Microsoft][ODBC Driver Manager] Driver does not support this function (0)

      The second error indicates the following according the MSDN on that function:

      SQLGetDiagRec Function

      Conformance          
      Version Introduced: ODBC 3.0 Standards Compliance: ISO 92
      Summary          
      SQLGetDiagRec returns the current values of multiple fields of a diagnostic record that contains error, warning, and status information. Unlike SQLGetDiagField, which returns one diagnostic field per call, SQLGetDiagRec returns several commonly used fields of a diagnostic record, including the SQLSTATE, the native error code, and the diagnostic message text.

      MS and DataDirect both have ODBC SDK packages to download and use. Not sure where you started building your ODBC driver from but you may want to start with one of those.

      Or at least add in UNICODE support if it's not already.

      Also, CR is ANSII 92 Compliant so make sure you are following those ODBC Standards.

      Don

  • Jul 23, 2015 at 01:57 PM

    Hi Jiessie,

    There are no plans to make a 64 bit version of CR Designer. Until 32 bit goes away and computers come in 64 and 128 bit modes 32 bit will be around for a long time.

    Your only solution is to provide both 32 and 64 bit versions of you ODBC driver and they can reside on the same PC.

    Or build in a Thunking mode into your Driver that supports both platforms.

    Don

    Add comment
    10|10000 characters needed characters exceeded