IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

requête InsertSQL d'un TIBDataSet


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 84
    Par défaut requête InsertSQL d'un TIBDataSet
    Bonjour,

    J'utilise un TIBDataSet et la requête d'insertion InsertSQL contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into CATEGORIAS (CAT_ID, CAT_NOME, CAT_DTCAD) 
    select max(CAT_ID)+1, :CAT_NOME, cast('TODAY' as DATE) from CATEGORIAS
    Les 2 champs CAT_ID, CAT_DTCAD sont en ReadOnly. Lorsque je modifie le champ CAT_NOME, j'ai un message qui me dit que les 2 champs CAT_ID, CAT_DTCAD doivent avoir une valeur. Je retire le ReadOnly et je saisis :

    CAT_ID = 50
    CAT_NOME = 'TOTO'
    CAT_DATE = '10/10/2006'

    Cela fonctionne apparemment mais dans la base mon nouvel enregistrement est :

    CAT_ID = max(CAT_ID)+1
    CAT_NOME = 'TOTO'
    CAT_DATE = la date d'aujourd'hui

    Donc si j'ai ce résultat, cela signifie qu'il a bien exécuter la requête que j'ai dans InsertSQL.

    Mais dans ce cas pourquoi me demande-t-il de saisir une valeur dans les champs CAT_ID et CAT_DTCAD ?

    Quelqu'un a une idée ?

    Cyril.

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Tu peux laisser ReadOnly à True, mais bascule la propriété Required à False pour tes 2 champs.

    La propriété Required est à True, car ces 2 champs sont certainement définis NOT NULL dans ta base de données.

    @+ Claudius.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 84
    Par défaut
    Salut,

    Effectivement ces deux champs sont définis NOT NULL dans ma BDD.

    La propriété Required appartient aux TField et non aux Tcolumn de mon TDBGrid...

    Dommage, pendant quelques secondes, j'y ai cru...

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut
    Citation Envoyé par cgone
    La propriété Required appartient aux TField et non aux Tcolumn de mon TDBGrid...

    Dommage, pendant quelques secondes, j'y ai cru...
    Oui effectivement c'est une propriété du TField. Mais as-tu essayé de faire fonctionner ton InsertSQL en ayant mis les 2 TFields à required = False ?

    Car ça devrait fonctionner !

    @+

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 84
    Par défaut
    Pardon d'insister mais je n'ai pas de TField ou alors il y a un truc qui m'échappe

    Cyril

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Re,

    Fais un double-clic sur ton TIBDataSet, la fenêtre de définition de tes champs apparait. Fais Ctrl-F pour ajouter tous les champs. Tes 3 champs apparaissent (ou plus).

    Maintenant tu peux basculer la propriété Required à False depuis l'inspecteur d'objet des deux champs CAT_ID, CAT_DTCAD.

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec TIBDataSet et InsertSQL ?
    Par MaTHieU_ dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/01/2007, 16h48
  2. TIBDataSet, InsertSQL
    Par AlexB59 dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/10/2005, 18h12
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo