2009-11-10 12 views
2

J'essaie de mettre à jour un champ compressé COBOL via une requête SQL dans une application C#. Actuellement, le champ compressé COBOL est stocké dans une colonne de caractères (char (50)) dans une base de données MS SQL.Conversion COBOL Packed

COBOL Type de données = 4 octets nombre binaire (« PIC S9 (9) COMP »):

je peux utiliser l'instruction suivante pour extraire les données. Je ne suis pas sûr de savoir comment inverser ces processus pour les mises à jour de données.

CAST (CAST (SUBSTRING ({Nom de la colonne}, {Départ}, 4) AS VARBINARY (4)) AS BIGINT) AS {} ALIAS_NAME

Toutes les suggestions?

Merci,

Brennan Mann

Répondre

1

Réponse à venir en retard. Mais de toute façon ... voilà: Si c'est bien PIC S9 (9) COMP et non COMP-3 alors ce n'est pas un champ compressé COBOL 'sinistre' mais un simple entier de 4 octets!

+0

Savez-vous comment un COMP-3 est défini? –

+0

@Brennan Mann: COMP-3 = DÉCIMAL EMBALLÉ. Un bon aperçu peut être trouvé ici: http://www.simotime.com/datapk01.htm – NealB