PDA

Ver la Versión Completa : Categoría ampliación de estructura


ppilargh
16/06/09, 09:18:13
Buenos días,

A ver si alguien me puede ayudar.. (en lenguaje de estar por casa porque estoy empezando)..

El otro día cree una tabla de prueba en el sistema y me obligó a indicar una categoría de ampliación.

Creo que otras veces no fue necesario.. pero..

¿que significa cada categoría?.. y.. ¿por qué me obliga a entrar un tipo de categoría (sólo a veces)?..

Ampliable de cualquier manera
Ampliable y de números o caracteres
Ampliable y de caracteres
No ampliable
No clasificado

Gracias a todos.

Saludos.

ballan
16/06/09, 10:17:00
No es obligatorio rellenar la categoria de ampliacion pero todas las estructuras y/o tablas deberian llevarla

Sirve para indicar lo que se le va a poder añadir a la estructura en un futuro, si campos numericos, campos de tipo caracter o ambos

Esto ocurre porque en muchos programas necesitamos saber si la estructura contiene campos que no sean de caracter por la siguiente razon

Tenemos la estructura llamada PRUEBA que contiene los campos

campo1 type char8
campo2 type char2
campo3 type char4

La longitud total de la estructura seria 14 caracteres( 8+2+4 ) lo que expresado en memoria serian 28 Bytes (cada caracter en unicode se representa con 2 bytes)

Como en unicode TODOS los caracteres ocupan lo mismo (2 Bytes) sabiendo la cantidad de memoria que ocupa la estructura sabemos rapidamente el numero de caracteres que tiene de longitud

Pero los campos numericos no se comportan igual

Los campos de tipo P, tales como cantidades, importes, etc se almacenan de manera distinta

Por ejemplo supongamos que un campo de tipo INT2 ocupa 2 Bytes (lo que equivaldria a 1 caracter) un campo INT2 sin signo al tener una longitud de 2 bytes podria almacenar desde el 0 hasta 2 elevado a 16 (que seguramente sea un numero muy grande) por ejemplo podria almacenar el numero 34562

Con 2 bytes que seria la longitud de 1 solo caracter podemos almacenar un numero que tiene 5 cifras

Si nuestra estructura tuviera un campo int2 conociendo lo que ocupa la estructura en memoria no podriamos determinar "correctamente" la longitud como lo hariamos si la estructura solo tuviera caracteres

Actualmente muchas badis, programas, clases, etc son genericos y por lo tanto pueden recibir dependiendo de la situacion distintas estructuras (por ejemplo la badi de los pedidos tambien salta cuando se hace algo en la solicitud de pedido por lo que la misma badi de pedidos en unas ocasiones puede recibir una estructura referente al pedido y en otras una estructura referente a la solicitud de pedido)

Estos programas genericos a veces necesitan saber si la estructura contiene campos que no sean de caracter para poder funcionar correctamente

Por ejemplo

Yo recibo la estructura EST1 que tiene los campos

campo1 type char8
campo2 type char2
campo3 type char4

y la quiero traspasar a otra estructura EST2, si lo hiciera en tiempo de ejecucion al no tener campos de tipo numerico tan solo tendria que crear un string de 14

create data EST2 type char14...

est2 = est1.

Si la estructura est1 tuviera un campo de tipo p con3 decimales pues ya seria mas complicado hacer la asignacion y todo eso

Bueno me ha salido un tocho enorme pero espero haber aclarado algo

ppilargh
16/06/09, 11:03:06
De sobras.. BALLAN..

GRACIAS !!