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 :

Problème avec TIBDataSet et InsertSQL ?


Sujet :

Bases de données Delphi

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut Problème avec TIBDataSet et InsertSQL ?
    Bonjour,

    J'ai un soucis avec mon TIBDataSet lorsque je veux y effectuer une insertion.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if not DataModuleMETAR.IBDataSetMETAR.Active then DataModuleMETAR.IBDataSetMETAR.Open;
    DataModuleMETAR.IBDataSetMETAR.Insert;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('ICAO').AsString := DataModuleMETAR.IBDataSetStation.FieldByName('ICAO').AsString;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('HORAIRE').AsDateTime := METAR_Date;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('TEMPERATURE').AsInteger := METAR_Temperature;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('POINTDEROSEE').AsInteger := METAR_Point2Rosee;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('HUMIDITE').AsInteger := METAR_HumiditeRelative;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('PRESSION').AsInteger := METAR_PressionAtmospherique;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('VENT_DIRECTION').AsInteger := METAR_VentDirection;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('VENT_VITESSE').AsInteger := METAR_VentVitesse;
    DataModuleMETAR.IBDataSetMETAR.ParamByName('METAR').AsString := METAR;
    DataModuleMETAR.IBDataSetMETAR.Post;
    DataModuleMETAR.IBTransactionMETAR.Commit;
    Dans mon composant TIBDataSet, j'ai le code suivant pour InsertSQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    insert into METAR
      (HORAIRE, HUMIDITE, ICAO, METAR, POINTDEROSEE, PRESSION, TEMPERATURE, 
       VENT_DIRECTION, VENT_VITESSE)
    values
      (:HORAIRE, :HUMIDITE, :ICAO, :METAR, :POINTDEROSEE, :PRESSION, :TEMPERATURE, 
       :VENT_DIRECTION, :VENT_VITESSE)
    Cependant lorsque j'execute la première ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataModuleMETAR.IBDataSetMETAR.ParamByName('ICAO').AsString := DataModuleMETAR.IBDataSetStation.FieldByName('ICAO').AsString;
    J'ai une exception ici qui est la suivante :
    Champ "ICAO" non trouvé
    Lorsque je débogue, j'ai bien :
    Expression : DataModuleMETAR.IBDataSetStation.FieldByName('ICAO').AsString;
    Résultat : "CYUL"
    Je ne vois pas d'où vient cette erreur...

    Merci pour votre aide,
    MaTHieU_
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    tu n'y es pas du tout!
    tu ne dois pas utiliser les paramètres, c'est le dataset qui le fait automatiquement pour insérer l'enregistrement.
    essaie plutôt comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if not DataModuleMETAR.IBDataSetMETAR.Active then DataModuleMETAR.IBDataSetMETAR.Open;
    DataModuleMETAR.IBDataSetMETAR.Insert;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('ICAO').AsString := DataModuleMETAR.IBDataSetStation.FieldByName('ICAO').AsString;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('HORAIRE').AsDateTime := METAR_Date;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('TEMPERATURE').AsInteger := METAR_Temperature;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('POINTDEROSEE').AsInteger := METAR_Point2Rosee;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('HUMIDITE').AsInteger := METAR_HumiditeRelative;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('PRESSION').AsInteger := METAR_PressionAtmospherique;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('VENT_DIRECTION').AsInteger := METAR_VentDirection;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('VENT_VITESSE').AsInteger := METAR_VentVitesse;
    DataModuleMETAR.IBDataSetMETAR.FieldByName('METAR').AsString := METAR;
    DataModuleMETAR.IBDataSetMETAR.Post;
    DataModuleMETAR.IBTransactionMETAR.CommitRetaining;

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut
    Bonjour,

    En effet, ça marche beaucoup mieu de cette manière

    Merci,
    MaTHieU_
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

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

Discussions similaires

  1. Problème avec TibDataset
    Par jopab dans le forum Bases de données
    Réponses: 16
    Dernier message: 29/10/2007, 05h40
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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