Consultor Eletrônico



Kbase P147030: Result from ABL query with specific WHERE clause repeat every 24 records when executed against DataS
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   28/05/2009
Status: Unverified

SYMPTOM(s):

Result from ABL query with specific WHERE clause repeat every 24 records when executed against DataServer for MS SQL Server in OpenEdge 10.1C

Query results repeat every 24 records

FACT(s) (Environment):

NO-LOCK query is BY a field that contains an unknown (?) value within a FOR EACH block
FIND NO-LOCK is performed within a DO TRANSACTION block on any table within the FOR EACH block
Schema holder has been deployed using OpenEdge 10.1C / 10.2A
Schema holder was created using OpenEdge 10.1A
Problem does not occur when testing against a schema holder created in OpenEdge 10.1C or later
OpenEdge 10.1C
OpenEdge 10.2A
MS SQL DataServer
Windows

CAUSE:

There are some flags that are set in the schema holder (e.g. DRIVER-CHARS and ESCAPE-CHAR) that are driver-specific. This may cause issues at runtime since the DataServer assumes that those flags are correctly set. Since the schema holder was created in OpenEdge 10.1A, it therefore used a different DRIVER-CHARS setting:

OpenEdge 10.1A:
DRIVER-CHARS "3,13,14,17,20,23,33,35,36,"

OpenEdge 10.1C:
DRIVER-CHARS "11,13,14,17,20,23,33,35,36,"

FIX:

Option #1
Create a new schema holder in OpenEdge 10.1C / 10.2A

Option #2
Create an empty schema holder to ensure that the database information is correct then load the table/index information:
- Create an empty schema holder against the ODBC driver and MS SQL Server version that will be used to ensure that the database information is correct.
- Take a copy of the existing .DF file then remove the ADD DATABASE section.
- Load the .DF file (where the ADD DATABASE section has been removed).