2010-04-20 4 views
2

Je veux être en mesure de vérifier si je peux modifier une cellule dans une base de données avec un nouvel objetVérifiez si édition est valide pour la base de données MS-Access

méthode Exemple de déclaration:

something.isValid(Object newObject, row, column);

cas Exemple:

  • Si les magasins de la cellule d'édition d'un numéro et je lui donne une chaîne, la méthode retournera false ...
  • Si le montage cellule doit être différent de tous les autres entrée (unique) et le nouvel objet est le même que quelque chose d'autre, la méthode également return false ....

Mon but principal ... Je veux vérifier une ligne entière, et si tout est valide, je modifierai toute la ligne. À l'heure actuelle, la seule façon de savoir si je peux vraiment éditer quelque chose est de l'éditer et de voir si j'ai une erreur.

éditer: // Interface DatabaseMetaData est une bonne méthode. Y a-t-il une méthode de commande SQL?

**** edit: // J'ai l'impression que les données de resultsetmeta sont assez bonnes. Cependant, où est la méthode isUnique()? ** edit: // isSigned() accomplit cela? edit: // Je vérifie donc si! IsSigned() et isWritable(). Qu'en est-il des conditions de colonne de la base Par exemple ... X doit être supérieur à 3 caractères ... **

Répondre

3

N'utilisez pas Object, mais utilisez simplement le type associé au type de données en question. Vous trouverez here des informations plus détaillées sur les types objet Java vous devriez utiliser pour certains DB types de données sous chaque tableau:

alt text http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/mapping.anc1.gif

Vous pouvez également utiliser DatabaseMetaData#getColumns() pour comprendre les informations de colonne (nom de colonne, type de données, taille, longueur max, nullable, etc.).

Il existe de nombreux autres procédés qui peuvent être utiles, par ex. getIndexInfo() pour figurer tous les index, le getPrimaryKeys() pour comprendre les PK, le getExportedKeys() pour figurer les FK, etc. Juste piquer un peu dans l'ensemble DatabaseMetaData API pour trouver ce dont vous avez besoin.

+0

Cela a été utile mais je pense que ResultSetMetaData est plus facile. Pensées? – twodayslate

+1

Il contient la même information. Vous n'avez qu'à créer/préparer un 'Statement' et interroger un' ResultSet' avant de pouvoir l'obtenir. Cela n'a pas beaucoup de sens. Avec seulement 'Connection', vous pouvez déjà obtenir' DatabaseMetaData'. – BalusC

+0

Oh je vois. C'est un gros avantage. Changer mon truc RSMD en trucs DMD maintenant ... – twodayslate

Questions connexes