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

Développement SQL Server Discussion :

Insertion et modification dans une requête [Débutant(e)]


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 49
    Points
    49
    Par défaut Insertion et modification dans une requête
    bonjour à tous
    je suis sur sql 2000 server et delphi 7

    mon premier problème c'est que je suis débutant en sql .

    mon deuxième problème c'est que j'ai une table (prisecharge) ou il ya des enregistrements,et je veux faire une modification sur un enregistrement donnée si ce dernier existe par contre si ce n'est pas le cas je ferais une insertion

    j'ai fais cette requette et sa passe sauf que rien ne se passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    if query1.FieldByName('num_miss').IsNull  then  
    begin
     query1.sql.clear;
      query1.sql.add('insert into prisecharge');
      query1.sql.add('(num_miss,date_pc,mont_dej,mont_din,mont_heber,jour,total_indem,region,type_pc)');
      query1.sql.add('values ( :mission,:Date,:CDEJ,:CDIN,:CHEBER,:JOUR,:CT,:CREGION,:TPC)');
     
    query1.ParamByName('CDEJ').asFloat:=strtofloat(edit1.Text);
    query1.ParamByName('CDIN').asFloat:=strtofloat(edit2.Text);
    query1.ParamByName('CHEBER').asFloat:=strtofloat(edit3.Text);
    query1.ParamByName('JOUR').asString:=label17.caption;
    query1.ParamByName('TPC').asString:=label14.caption;
    query1.ParamByName('CT').asFloat:=strtofloat(edit4.Text);
    query1.ParamByName('CREGION').asString:=Edit43.Text;
    query1.ParamByName('MISSION').asString:=Edit44.Text;//label11.caption;
    query1.ParamByName('DATE').asString:=Prise_Charge_TP_F.label1.caption;
    query1.ExecSQL;
     end
     else
     if query1.FieldByName('num_miss').AsString=edit44.Text  then  
     begin
     Requette:=('UPDATE prisecharge  SET mont_dej=:CDEJ,mont_din=:CDIN,mont_heber=:CHEBER,jour=:JOUR,type_pc=:TPC,total_indem=:CT,date_pc=:DATE WHERE num_miss=:MISSION and date_pc=:DATE   ');
    Prise_Charge_TP_F.query1.sql.add(requette);
    with Prise_Charge_TP_F.query1 do
    begin
    query1.ParamByName('CDEJ').asFloat:=strtofloat(edit5.Text);
    query1.ParamByName('CDIN').asFloat:=strtofloat(edit6.Text);
    query1.ParamByName('CHEBER').asFloat:=strtofloat(edit7.Text);
    query1.ParamByName('JOUR').asString:=label17.caption;
    query1.ParamByName('TPC').asString:=label14.caption;/////////////
    query1.ParamByName('CT').asFloat:=strtofloat(edit8.Text);
    query1.ParamByName('MISSION').asString:=Edit44.Text;//label11.caption;
    query1.ParamByName('DATE').asString:=Prise_Charge_TP_F.label1.caption;
    query1.ExecSQL;
     end ;

    merci pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 80
    Points : 54
    Points
    54
    Par défaut
    Bonjour,
    tu peux soit créer une procédure stockées ou fonction au niveau de la base de données sql server
    tu vérifies si cet enregistrement existe a laide d'une requête sql
    tu déclare une variable sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    create spinsertupdate (tu déclare tes paramètres )
    begin
    declare @compteur int
    set @compteur=(select count(*)
    from prisecharge
    where num_miss=@tonnumenregistrement)
    if @compteur>=1
    update prisecharge 
    set 
    WHERE num_miss=@tonnumenregistrement)
     
     
    if @compteur=0 
    insert into prisecharge
    end
    go
    après dans ton programme delphi tu fais appel a la procédure stockées

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Points : 49
    Points
    49
    Par défaut
    merci je vais essayer

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous pouvez aussi gérer directement votre insertion ou update avec une seule requête MERGE.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 854
    Points : 52 995
    Points
    52 995
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Vous pouvez aussi gérer directement votre insertion ou update avec une seule requête MERGE.
    Pas supporté dans SQL Server 2000 !

    A +

Discussions similaires

  1. [AC-2003] Insertion de datedii dans une requête
    Par leonardodijava dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 02/02/2013, 07h11
  2. Problème dans une requête d'insertion
    Par celica dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/09/2007, 15h28
  3. Réponses: 2
    Dernier message: 13/06/2007, 17h42
  4. enregistrer des modifications dans une requête
    Par Lenalyon dans le forum WinDev
    Réponses: 1
    Dernier message: 14/02/2007, 10h58
  5. Modification d'une "requête" inscrite dans la base
    Par Tardiff Jean-François dans le forum Access
    Réponses: 5
    Dernier message: 07/04/2006, 15h51

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