Consultor Eletrônico



Kbase P116845: Reserved error -7748 when attempting to link a OpenEdge 10.1x Database table in Microsoft Access
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   03/08/2010
Status: Verified

SYMPTOM(s):

Reserved error -7748 when attempting to link a OpenEdge 10.1x Database table in Microsoft Access

Reserved error (-7748): there is no message for this error

Error in ODBC trace file:

DIAG [01004] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]String data, right truncated. Error in column 10. (0)

Problem occurs when using the 5.1 DataDirect driver shipped with 10.1A

Problem occurs when using the 5.1 DataDirect driver shipped with 10.1B

Problem occurs when using the 5.1 DataDirect driver shipped with 10.2B

FACT(s) (Environment):

Windows
Problem does not occur with the 4.2 DataDirect driver shipped with 10.0B
MS Access 2000
MS Access 2002
MS Access 2003
OpenEdge 10.1A
OpenEdge 10.1B
OpenEdge 10.1C
OpenEdge 10.2A
OpenEdge 10.2B
Progress OpenEdge 10.1A driver
Progress OpenEdge 10.1B driver
Progress OpenEdge 10.1C driver
Progress OpenEdge 10.2A driver
Progress OpenEdge 10.2B driver
ODBC Drivers
Microsoft Access 2003
OpenEdge 10.x

CAUSE:

Bug# OE00129491

CAUSE:

The problem is caused by an issue within Microsoft Access, not the DataDirect driver.

Microsoft Access 2000 calls SQLStatisticsW and SQLGetData for column number 10. Microsoft Access only asks for the data as a two-byte SQL_C_WCHAR, which is insufficient buffer to store the UCS2 character and the null terminator. Thus, the driver returns a warning, "01004 Data truncated", and returns a null character to Microsoft Access. Microsoft Access then passes error -7748. Setting WorkArounds2=8192 as shown in this KBase's fix causes Microsoft Access to not pass the error -7748.

FIX:

Workaround:

WARNING - You should always make a backup of the Registry before making any changes.

To resolve this error, set WorkArounds2=8192 for the affected data source. This can be done by using the Registry Editor (RegEdit).

1. Run RegEdit

2. Locate the ODBC DSN in the Registry:

For a USER Data Source, go to HKEY_CURRENT_USER -> Software -> ODBC -> ODBC.INI -> YourDataSourceName

For a SYSTEM Data Source, go to HKEY_LOCAL_MACHINE -> Software -> ODBC -> ODBC.INI -> YourDataSourceName

For 32-bit applications (ODBC drivers) on 64-bit Windows, (MACHINE) Data Source, go to

HKEY_LOCAL_MACHINE -> Software -> Wow6432Node -> ODBC -> ODBC.INI -> YourDataSourceName
3. Click on the folder for your data source; from the menu choose:
Edit -> New -> String Value

4. Set the name of the new string value to be WorkArounds2

5. Double click on WorkArounds2 in the right hand panel; this will bring up a dialog box with a data value field

6. Change the data value to 8192 (The string value that must be added to Windows XP SP2 and Progress 10.1A02 is WorkArounds2=40960)

7. Click OK

8. Close RegEdit

PCs running Windows 95 and 98 need to be rebooted for this setting to take effect
9. NOTE: When using a FILE DSN, simply open the (text) FILE DSN with your favorite text editor, add the following string to its contents (without quotes and using the appropriate (integer) value for <nnnnn>: "WorkArounds2=<nnnnn>". Save the file.