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

 Delphi Discussion :

Syntaxe d'un SQL Direct


Sujet :

Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Syntaxe d'un SQL Direct


    Bonjour à tous

    Vous allez rire, car ce doit être tout bête.

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL_CAISSE.SQL.Clear;
    SQL_CAISSE.SQL.Add('update Caisse C set c."DATE" = '+QuotedStr(DateToStr(xDate)));
    SQL_CAISSE.SQL.Add('where c.id_Operation = ' + QuotedStr(IntToStr(Id_Operation)));
    SQL_CAISSE.ExecSQL(true);
    Date est un champ de format Date (ben voyons)
    xDate est un variable déclarée TDateTime qui contient une date

    Je me bats avec les '''''' : et j'ai toujours une erreur de conversion de String en date. Je commence à voir les '' en double et triple.

    Puis-je demander un tout petit coup de pouce ?

    un Merci
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonsoir

    j'ai déjà vu sur le forum des problèmes lorsqu'un nom de champ utilise un mot réservé (Date par exemple), cela avait été réglé pour certaines BBD par l'utilisation de crochets ([Date]) il me semble.

    une petite recherche s'impose!
    à+

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Le Params c'est toujours la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL_CAISSE.SQL.Clear;
    SQL_CAISSE.SQL.Add('update Caisse C set c."DATE" = :ParamDate');
    SQL_CAISSE.SQL.Add('where c.id_Operation = :ParamOp');
    SQL_CAISSE.ParamByName('ParamDate').AsDateTime := xDate;
    SQL_CAISSE.ParamByName('ParamOp').AsInteger:= Id_Operation;
    SQL_CAISSE.ExecSQL(true);
    Voir aussi CAST du SQL pour voir aussi, avec Oracle (si on est paranoiaque, le TDateTime directement affecté ça passe aussi), c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL_CAISSE.SQL.Add('update Caisse C set c."DATE" = TO_DATE(:ParamDate, "yyyy/mm/dd:hh24:mi:ss")');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL_CAISSE.ParamByName('ParamDate').AsString := FormatDateTime('YYYY/MM/DD:HH:NN:SS', xDate);
    Sujet à lire
    Une requête SQL sur 2 Dates
    ParamByName d'une date

    Ah vive MySQL, qui gère un format date très simple "YYYY-MM-DD", la fonction MySQLDateToStr est surement la plus utilisé dans le code des applis que je maintiens ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Citation Envoyé par ShaiLeTroll
    Le Params c'est toujours la solution
    Alors ça, je n'y aurais pas pensé dans un SQL Direct ! Comme quoi on apprend tous les jours.

    Je viens de l'appliquer et je n'ai plus de problème de '''. Génial

    un MERCI
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

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

Discussions similaires

  1. [AC-2010] injecter une syntaxe dans une requete SQL direct avec ADO
    Par debdev dans le forum VBA Access
    Réponses: 5
    Dernier message: 18/02/2015, 15h50
  2. Requête SQL Direct à partir de VBA
    Par petitmic dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 25/05/2007, 17h35
  3. Procédures stockées vs SQL direct
    Par odelayen dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 10h09
  4. [VB6] Syntaxe des requetes SQL
    Par Djaiffe dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/06/2006, 09h19
  5. Importer du SQL directement dans ACCESS ?
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/02/2006, 11h46

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