Valores NULL en tablas SQL

Obsydian, Cool:Plex, Advantage Plex, AllFusion Plex...

Moderadores: Jorge Ubeda, pacopicon

Valores NULL en tablas SQL

Notapor DONJOHN » Mié Abr 18, 2007 10:38 pm

Por favor, quien podría ayudarme con el siguiente caso:

Al generar una tabla en SQL


CREATE TABLE CCMOVDF (
ELCDOF %char%(1)

NOT NULL

,

ELCEMI %numeric%(5, 0)

NOT NULL

,

ELNDOC %numeric%(5, 0)

NOT NULL

,

ELNLIN %numeric%(3, 0)

NOT NULL

,

ELCCLI %char%(13),

ELZONA %numeric%(3, 0),

ELSZON %numeric%(3, 0),

etc.......

Se puede observar que los 3 últimos campos aparecen sin el NOT NULL y al compilarlo en la plataforma SQL puedo apreciar que los campos permiten NULLs lo cual está afectando a mis aplicaciones al transferir por ejemplo data del excel al SQL, los datos vacíos los transfiere con NULL.

He probado modificando el source code de la tabla antes de compilarla poniéndole NOT NULL a uno de los campos y dicho campo se crea sin permitir NULLs dentro de la tabla.

Qué puedo hacer para que por default todos mis campos tengan NOT NULL para generar mis tablas sin que permita valores NULL

Les estaré bien agradecido si pueden absolverme esta duda.

Gracias
John
DONJOHN
 
Mensajes: 3
Registrado: Mié Abr 18, 2007 7:38 pm
Ubicación: Lima-Perú

más datos

Notapor Jorge Ubeda » Mié Abr 18, 2007 10:45 pm

Podrías confirmar si estamos hablando de Plex? Variante? Qué Database?
Jorge Ubeda
Site Admin
 
Mensajes: 229
Registrado: Mié Oct 26, 2005 6:00 pm
Ubicación: Valencia

Del manual

Notapor Jorge Ubeda » Jue Abr 19, 2007 1:22 pm

No teniendo respuesta todavía, te paso las generalidades de la User Guide (el resaltado es mío):

The Null Value
SQL defines a special field state called null. The concept of null addresses a limitation in the relational model (specifically, that every intersection of rows and columns in a table must have a value).

A null value means that the field contains no data. This is not the same as containing zero or blanks. To define a null value, you add a FLD null VAL triple. Unless you have a specific requirement, it is not normally necessary to specify a literal value for the large property of this value object. For example:

Account Balance value Null Value
Account Balance null Null Value
Account Balance default Null Value


Here a FLD default VAL triple has been used so that the field will automatically be initialized with its null value. The alternative is to explicitly code the initialization in the action diagram.

Note: Only define null values for fields in which the distinction between null and empty is important for your application. The abstract fields in the Advantage Plex class libraries do not normally have a FLD null VAL triple, and class library functions do not provide null processing.

In action diagrams, you can use the following meta-operations to test for and manipulate the null value:

++If Value FLD null VAL

++Set Value FLD null VAL

Nulls and SQL
Advantage Plex null support is designed to correspond closely with the concept of SQL NULL.

For an SQL/ODBC database, when a null field in a row is being written to or read from the database, SQL NULL indicators are used to transfer the state to or from the database. When the null value is referenced in the select or omit set of a view, the resulting SQL predicate will use the keywords IS NULL or IS NOT NULL, as appropriate.

Advantage Plex's implementation of null values differs from SQL NULL in that an Advantage Plex null value is in the collating sequence. SQL NULL is outside the collating sequence. The collating sequence for special field values is:

Null < Low < Normal Values < High

Note: If you are working with existing data in an SQL database, note that the data may include null values which will fail an If Empty condition (even in the absence of a FLD null VAL triple). To avoid this situation you can model the data correctly by providing null support in your model or eliminate the null values from the database.

Espero que se acerque a tu problema.
Jorge Ubeda
Site Admin
 
Mensajes: 229
Registrado: Mié Oct 26, 2005 6:00 pm
Ubicación: Valencia

Re: Del manual

Notapor DONJOHN » Vie Abr 20, 2007 4:05 pm

Jorge Ubeda escribió:No teniendo respuesta todavía, te paso las generalidades de la User Guide (el resaltado es mío):

The Null Value
SQL defines a special field state called null. The concept of null addresses a limitation in the relational model (specifically, that every intersection of rows and columns in a table must have a value).

A null value means that the field contains no data. This is not the same as containing zero or blanks. To define a null value, you add a FLD null VAL triple. Unless you have a specific requirement, it is not normally necessary to specify a literal value for the large property of this value object. For example:

Account Balance value Null Value
Account Balance null Null Value
Account Balance default Null Value


Here a FLD default VAL triple has been used so that the field will automatically be initialized with its null value. The alternative is to explicitly code the initialization in the action diagram.

Note: Only define null values for fields in which the distinction between null and empty is important for your application. The abstract fields in the Advantage Plex class libraries do not normally have a FLD null VAL triple, and class library functions do not provide null processing.

In action diagrams, you can use the following meta-operations to test for and manipulate the null value:

++If Value FLD null VAL

++Set Value FLD null VAL

Nulls and SQL
Advantage Plex null support is designed to correspond closely with the concept of SQL NULL.

For an SQL/ODBC database, when a null field in a row is being written to or read from the database, SQL NULL indicators are used to transfer the state to or from the database. When the null value is referenced in the select or omit set of a view, the resulting SQL predicate will use the keywords IS NULL or IS NOT NULL, as appropriate.

Advantage Plex's implementation of null values differs from SQL NULL in that an Advantage Plex null value is in the collating sequence. SQL NULL is outside the collating sequence. The collating sequence for special field values is:

Null < Low < Normal Values < High

Note: If you are working with existing data in an SQL database, note that the data may include null values which will fail an If Empty condition (even in the absence of a FLD null VAL triple). To avoid this situation you can model the data correctly by providing null support in your model or eliminate the null values from the database.

Espero que se acerque a tu problema.


Gracias por atender mi inquietud. No especifiqué que la herramienta que me genera los valores NULL es Plex por tratarse de un foro en Plex.

La base de datos con la que estoy trabajando es SQL Server. Mi origen de datos es un DSN de sistema ODBC el cual apunta a una base de datos específica en el SQL Server.

Para compilar una tabla las variantes que utilizo son las siguientes:

DATE : Windows Client
OBASE: Windows/ODBC
OBDATE: Windows Client
Los demas en Base

Si solamente genero la tabla y observo el View Source observo que los campos de la tabla no tienen la palabra clave NOT NULL y se crea la tabla con los campos que permiten los valores NULL.

En la definición de los campos vía tripletas hay manera de decirle que no permita los valores NULL?. He probado que si por el view source le agrego la palabra clave NOT NULL a uno de los campos de la tabla este se crea sin Permitir Valores NULL y por lo tanto he llegado a la conclusión que se debe definir en el Plex el tema de los NOT NULL.

Si tienes conocimiento de lo que te estoy diciendo te agradecería me lo hagas saber a la brevedad.

De antemeno gracias por atenderme.

Éxitos...!
John
DONJOHN
 
Mensajes: 3
Registrado: Mié Abr 18, 2007 7:38 pm
Ubicación: Lima-Perú

No tengo como testearlo, pero se puede probar

Notapor Jorge Ubeda » Lun Abr 23, 2007 2:42 pm

tabla has campo1

campo1 is a longdescription
campo1 value *nulo
campo1 null value *nulo
campo1 state *not nulo
state *not nulo is not equal *nulo
campo1 constrained to state *not nulo

generar
en mi caso, obtengo la restricción deseada
Jorge Ubeda
Site Admin
 
Mensajes: 229
Registrado: Mié Oct 26, 2005 6:00 pm
Ubicación: Valencia


Volver a Plex

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron