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 :

Aide, donner paramètre vide a TAdoQuery


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut Aide, donner paramètre vide a TAdoQuery
    Bonjour à Tous,
    j'ai besoin d'aide parce que j'ai cherché sans succès.

    je suis en Delphi6 et Access, TAdoQuery

    Champ parameter[15] accepte VIDE(NULL) oui
    E_Licence.Text est vide

    J’ai bidouillé quelque chose du genre,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (E_Licence.Text='') then q_Update.Parameters[15].Value := QuotedStr(E_Licence.Text)
    else q_Update.Parameters[15].Value := E_Licence.Text;
    mais il doit y avoir plus simple et plus pro...

    Merci de votre aide
    810mcu

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Je n'ai pas l'habitude de Adoquery .
    Je présume que q_Update.Parameters[15].Value :=NULL ne fonctionne pas mais q_Update.Parameters[15].Clear existe peut être ?
    Hélas cela semble être un des problème de ADO sur ce que j'en lis sur le net et ta bidouille semble être le seul moyen de le contourner
    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
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    Bonjour a tous
    et salut SergioMaster,

    Au fait en exécutant un Update a un TadoQuery,
    j’ai une série de paramètres qui sont dans des Edit à attribuer au TAdoQuery
    dont quelques uns sont vides et je désire qu’ils en reste comme ça vide(Null)
    Et dont je confirme la table accepte des vides.

    Il doit y avoir un truc… Au lieu de passer par ma bidouille...

  4. #4
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Comme l'a suggéré Sergio, est-que l'affectation de Null fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      if E_License.Text = '' then
        ADOQuery1.Parameters[15].Value := Null
      else
        ADOQuery1.Parameters[15].Value := E_License.Text;
    @+

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    - CLEAR n’est pas acceptez par TAdoQuery…
    - NULL ne fonctionne pas, erreur dans la conversion

    Une chose est sûre avec le bidouillage ça marche,
    mais quand tu as 25 a 30 paramètres a transférer…
    Bouf ça reste lourd comme code… mince alors...

  6. #6
    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 TParameter de ADO est moins pratique que les Paramètres du BDE, de DBExpress ou chez UniDac Devart, pour la valeur nulle, il faut forcer le type !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if E_License.Text = '' then
      begin
        ADOQuery1.Parameters[15].Value := Null;
        ADOQuery1.Parameters[15].DataType := ftString;
      end
      else
        ADOQuery1.Parameters[15].Value := E_License.Text;
    Le comportement dépend aussi de la DB !
    ACCESS, cela reste assez limité ! Je n'ai jamais utilisé ce format !
    Le code ci-dessus fonctionne avec Oracle ou MySQL mais sur Sybase 10 cela insère -1 au lieu de NULL, le code suivant corrige le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      if E_License.Text = '' then
      begin
        ADOQuery1.Parameters[15].DataType := ftString;
      end
      else
        ADOQuery1.Parameters[15].Value := E_License.Text;
    Par contre cela oblige d'avoir des ADOQuery créés à la volée et détruit après chaque utilisation pour forcer l'effacement des valeurs précédentes !
    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

Discussions similaires

  1. Tester un paramètre vide
    Par birt1976 dans le forum BIRT
    Réponses: 2
    Dernier message: 27/08/2008, 14h10
  2. ouverture d'une fenêtre à l'aide de paramètres
    Par bobsaoul dans le forum IHM
    Réponses: 3
    Dernier message: 12/03/2008, 15h13
  3. Affichage d'une requête dans le cas d'un paramètre vide
    Par Salamander24 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/02/2008, 08h57
  4. Réponses: 2
    Dernier message: 29/01/2008, 14h10
  5. [CKEditor] Besoin d'aide pour paramétrer FCK editor pour admin
    Par anartiste dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 12/04/2007, 16h49

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