PLUS POSSIBLE DE DEFINIR UNE COLONNE NULL AVEC ACCESS 2007 ??

[Résolu]
Signaler
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
-
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
-
Bonjour je viens de m'apercevoir d'un truc avec Access 2007 qui m'a vraiment étonné

est ce que je me trompe ou est ce bien ce que je me suis apercu ?

on ne peut plus definir si une colonne peut accepté les valeurs null ou non (ainsi une colonne acceptera valeurs null si ce n'est pas une clé primaire)
mieux en créant une table en SQL avec des colonnes NOT NULL celles-ci sont en fait passées comme si elles acceptaient les valeurs null

j'ai remarqué que l'on peut regler parfois(selon le type de données de la colonne) la propriete Required , mais qui en fait ne correspond pas à allowdbnull

Se poser les bonnes questions ;) 
apporter les réponses

4 réponses

Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
Donc j'ai trouvé

avec Access
une colonne clé primaire aura AllowDbNull à false
une colonne non clé primaire aura AllowDbNull à true (même si on crée la colonne par SQL avec NOT NULL , exemple avec ADO.NET ou un outil)

pour savoir réellement si une colonne accepte les valeurs null il faut aller chercher la valeur IS_NULLABLE

exemple :

string[] Restrictions = {
null,
null, TableName };

DataTable oDataTableIsNullable = oOleDbConnection.GetSchema(
"Columns",Restrictions);
bool

result =
false;

foreach (System.Data.
DataRow oDataRow
in oDataTable.Rows){

result =

Convert.ToBoolean(oDataRow[
"IS_NULLABLE"
]);}

Pour SQL Server on peut récupèrer AllowDbNull pour obtenir le schema de la base sans souci,oui :x

Se poser les bonnes questions ;) 
apporter les réponses
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
a quoique si on dirait que c'est bien required
m'enfin bon parfois je m'interroges, c'est comme le SQL sauce Access(SQL View) qui facilite pas la tache pour créer des requetes

Se poser les bonnes questions ;) 
apporter les réponses
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
quoique non non si je recupere le schema d'une table en .NET avec quelque chose du style

DataTable oDataTable = oOleDbDataReader.GetSchemaTable();
et bien même mes colonnes ne devant pas accepter les valeurs nulles ont la propriété AllowDbNull a true (dans la datatable recupérée)

Se poser les bonnes questions ;) 
apporter les réponses
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
et j'ajouterai c'est facilement verifiable vous ajoutez une source de données a une base Acces qui contient des champs acceptant NULL et d'autres non (correspondant à Required dans Access) qui genere un DataSet typé et vous pourrez constater que toutes les colonnes ont AllowDbNull à true sauf les colonnes "clés"

bon vous avez rien compris pas grave lol
merci moi

Se poser les bonnes questions ;) 
apporter les réponses