2009-04-24 9 views
1

J'ai un peu de mal avec ADO. J'ai déployé une application de base de données, qui utilise Access. Avec la sortie de versions différentes, les tables de base de données ont des champs différents, d'autres ont été supprimés, etc. Ce que je n'arrive pas à faire, c'est comment ajouter un champ BOOLEAN dans la base de données.Table de base de données ADO Colonne booléenne

Aux fins de mise à niveau j'utilise le composant de requête SQL avec un standart sql qui ressemble à ceci:

ALTER TABLE XXX ADD COLUMN YY BOOLEAN 

alors que cela fonctionne pour d'autres types de données, tels que VARCHAR, ENTIER, DOUBLE etc, il ne pas BOOLEAN. Je soupçonne que c'est la faute d'Access avec c'est OUI/NON pour booléen, mais qui sait.

Comment puis-je ajouter des champs à une table en utilisant TADOTable?

Merci d'avance.

Répondre

5

Dans Microsoft Access SQL, la colonne BIT correspond directement à la OUI/NON champ. J'ai rencontré un comportement étrange avec si vous essayez de le convertir ultérieurement en SQL Server, et mon conseil est alors de faire ce qui suit:

Lorsque vous effectuez une vérification sur ce champ, n'oubliez pas que la syntaxe doit être (FIELD <> 0) pour vérifier TRUE, et (FIELD = 0) pour vérifier false. SQL Server ne comprend pas le concept de TRUE/FALSE, et en accès, la valeur renvoie -1 et 0, tandis que dans SQL Server, les valeurs sont 1 et 0.

En accès, la case à cocher ne s'affiche que si vous définissez également le champ sur null. Si les valeurs NULL sont autorisées, alors il affichera 0 ou -1 ou sera vide.

1

Essayez BIT, non booléennes

2

ne suis pas sûr Access, mais SQL Server utilise un type de bits pour gérer les valeurs booléennes.

0

Vous ne pouvez pas faire de nombreuses opérations sur BIT (ou votre propre coutume) type, bien mieux est TINYINT (1) et utiliser 0/1.