OleDB ajoute toujours un chiffre supplémentaire aux champs numériques DBF lorsque nous les créons. Une commande comme celle-ci: CREATE TABLE [file1.DBF] ([MY_FIELD] NUMERIC(1,0) NULL)
créera un champ pouvant contenir 2 chiffres (ou un chiffre et un signe moins). Ce qui est drôle est que je peux demander une longueur de zéro comme ceci NUMERIC(0,0)
et il va créer un champ avec une longueur de 1.La largeur du champ numérique dans le fichier DBF est incohérente lorsqu'elle est créée avec oleDB (.NET)
Je n'ai trouvé aucune documentation concernant ce comportement.
Est-il spécifique à l'utilisation de oleDB pour créer DBF ou la même chose peut arriver avec d'autres DB?
Le caractère supplémentaire ajouté par oleDB est-il uniquement utilisé pour gérer le signe moins?
Ce comportement est-il cohérent? Je veux dire, puis-je soustraire un à la largeur quand je crée la table?
Edit: Cette question a été à peu près répondu ici: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/af245580-8897-4608-8fa0-f00286d37324?prof=required
Je ne vois pas comment cela peut être un problème basé sur zéro ou un problème basé sur un seul, à part une sorte de bogue dans l'implémentation qui utiliserait un tableau pour une manipulation. Le nombre que nous spécifions est une taille, pas un index. Cela voudrait dire qu'il est interprété comme un indice à un moment donné. –