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 :

[Firedac] [XE4] ADConnection.ExecSQL avec paramètres


Sujet :

Bases de données Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut [Firedac] [XE4] ADConnection.ExecSQL avec paramètres
    Bonjour ,

    c'est la première fois que j'utilise ce genre de truc : exécuter un SQL directement , sans passer par un ADQuery associé et là , je butte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        i:=Datas.Base.ExecSQL('UPDATE MODELES SET IMAGE=:I WHERE NOM=:N',
                              [QuotedStr(ExtractFileName(nom)),QuotedStr(SModele.Text)]);
    retour , i=0 mais pourtant la table n'est pas modifiée

    avant , toutes choses , OUI , les transactions sont en autocommit (aussi bien Transaction que UpdateTransaction)

    certainement parce que l'on est en Week-end , je ne vois pas ma faille : une idée ? je lâche le clavier pour me mettre aux fourneaux

    bonne Fin de Week End
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    méa culpa méa maxima culpa !

    J'ai fait une confusion ,qui pourrait bien arriver à d'autres, entre les propriétés Transaction et UpdateTransaction
    je m'explique . Ma connexion avait ces deux propriétés remplies , Transaction=TransactionenLecture UpdateTransaction=TransactionMiseaJour
    jusque là , logique
    TransactionLecture , je l'avais mis en ReadOnly = True
    TransactionMiseaJour , bien sur en ReadOnly = False
    logique ?
    En utilisant un ADQuery cela ne posait aucun problème car le ADQuery était relié à TransactionMiseaJour
    et voilà où la confusion opère un ExecSQL Direct sur la connexion utilise Transaction et non UpdateTransaction ! (cette dernière est utilisée par le UpdateObject de la connexion)

    J'espère avoir bien compris , une confirmation sera bienvenue

    Comme quoi il faut décrocher le W.E. sous peine de geek
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Finalement , il y avait aussi un autre problème :

    ce code ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     i:=Datas.Base.ExecSQL('UPDATE MODELES SET IMAGE=:I WHERE NOM=:N',
                              [QuotedStr(ExtractFileName(nom)),QuotedStr(SModele.Text)]);
    celui-ci , oui , les QuotedStr était de trop , étonnant
    i:=Datas.Base.ExecSQL('UPDATE MODELES SET IMAGE=:I WHERE NOM=:N',
    [ExtractFileName(nom),SModele.Text]);
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

Discussions similaires

  1. dbexpress : delete avec paramètre
    Par KRis dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/06/2005, 11h04
  2. [VB.net] Thread avec paramètres
    Par WriteLN dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/04/2005, 18h42
  3. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 11h33
  4. [PL/SQL] Curseur avec Paramètre
    Par blids dans le forum Oracle
    Réponses: 5
    Dernier message: 10/10/2004, 21h07
  5. Réponses: 3
    Dernier message: 21/05/2003, 12h44

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