Consultor Eletrônico



Kbase 20963: Field named XXXX_ are not pulled by SQL Server Dataserver
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   24/10/2008
Status: Verified

FACT(s) (Environment):

MS SQL DataServer 9.1B

SYMPTOM(s):

Field-names starting with "progress-" or "progress_" are present within MS SQL Server database after a migration is run, (Pro-to-SQL: Progress to a MS SQL migration).

Progress schema holder is created but there is no schema information present within the schema holder. The same applies when running Update/Add schema through the DataServer menu

** <file-name> already exists with <field/value...>. (132)

CAUSE:

The DataServer reserves the field names starting with "progress_" or "_PROGRESS_" over the SQL Server database for internal purposes. The DataServer converts dash (-) to underscore (_) during migration, so if you have a field name starting with "progres-" on your Progress database, for instance, it will end up as progres_ in the SQL Server database.

On Progress 9.1B04 patch (Win32), a change in the DataServer implementation was put in place for the MS SQL Server DataServer in regards to quoted identifiers, turning the quoting ON by default. The implementation enabled such user-defined fields to be pulled into the schema holder. This was not an intentional fix to the problem, but an actual side-effect problem caused by the new implementation.
Later on Progress 9.1C03 patch (Win32), the side-effect problem was fixed, so you will not be able to pull the fields starting with "_PROGRESS_" or "PROGRESS_" into the schema holder.

FIX:

Rename the field. Do not use field starting with the two reserved words described in this solution, unless the documentation asks you to do so.

When pulling schema into schema holder,
1. rename the field in the SQL Server table
2. pull the definitions into the schema holder
3. set the field name back in the schema holder (only if you want to keep the original name.)

When migrating the database from Progress to MS SQL Server,
1. rename the field in the Progress database,
2. migrate it
3. then after the schema holder is created
3. rename the field name in the schema holder.