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 :

la propriété "Asstring"


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Femme Profil pro
    programmeur
    Inscrit en
    Novembre 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : programmeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 65
    Points : 17
    Points
    17
    Par défaut la propriété "Asstring"
    bonjour;
    Je veux afficher le mot ('coucou') dans un champ NumOrdre voilà mon source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm2.Button2Click(Sender: TObject);
    begin;
    table1.edit;
    table1.FieldByName('NumOrdre').asstring:='coucou';
    end;
    {Le type du champ NumOrdre est auto incrément dans la base de donnees}
    Lors de l'exécution il s'affiche un message d'erreur, comme quoi le type de champ est un entier
    J'aimerais savoir pourquoi? Car Asstring est une propriété qui permet de convertir le type natif du champ en string. Voilà le message

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    et bien que dire...est-ce que tu sais réellement ce que tu fais ?

    'coucou' ne me semble en effet pas être un nombre, or NumOrdre en réclame un...il est même auto incrémenté, il n'est donc pas nécessaire de lui attribuer une valeur.

    c'est comme si je te demandais ton age et que tu me répondais "coucou"...ça n'a pas de sens.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 560
    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 560
    Points : 25 156
    Points
    25 156
    Par défaut


    Définitivement "coucou" NE PEUT PAS devenir un entier !

    TIntegerField.AsString en lecture va transforme un integer 123 en chaine '123'.

    TIntegerField.AsString en écriture va transforme une chaine '123' en integer 123.

    Faut que les données soient interprétables !

    Si tu veux afficher du Texte, il te faut remplacer le TDBEdit relié au champ NumOrdre par un TEdit que tu gère manuellement !

    Avec un TDBEdit, en modifiant sa fonction de dessin (voir WndProc), tu dois pouvoir dessiner un texte genre "taper ici" tant que le texte est vide

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par nassimanocus Voir le message
    bonjour;
    Je veux afficher le mot ('coucou') dans un champ NumOrdre voilà mon source
    //procedure TForm2.Button2Click(Sender: TObjectbegin;
    table1.edit;
    table1.FieldByName('NumOrdre').asstring:='coucou';
    end;
    end.//
    {Le type du champ NumOrdre est auto incrément dans la base de donnees}
    Lors de l'exécution il s'affiche un message d'erreur, comme quoi le type de champ est un entier
    J'aimerais savoir pourquoi? Car Asstring est une propriété qui permet de convertir le type natif du champ en string. Voilà le message
    Vous avez vous même répondu à votre question...
    La colonne NumOrdre de votre table est de type Auto Incrément sous entendu Entier.
    L'instruction table1.FieldByName('NumOrdre').asstring:='coucou'; est syntaxiquement correcte (cad que le compilateur peut la traduire en code machine). Par contre à l'exécution, lorsque le champ NumOrdre de votre table va être rempli, une erreur de conversion va être générée ('coucou' ne peut être traduite en valeur entière).
    Il faut que la chaine de caractères soit une réprésentation littérale d'une valeur entière, par exemple : table1.FieldByName('NumOrdre').asstring:='123';

  5. #5
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    c'est comme si je te demandais ton age et que tu me répondais "coucou"...ça n'a pas de sens.

  6. #6
    Membre à l'essai
    Femme Profil pro
    programmeur
    Inscrit en
    Novembre 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : programmeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    oui justement , puisque je suis entrain de tester la propriété asstring

  7. #7
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Bonjour,

    si tu souhaites tester la propriété AsString,

    utilise un autre champ mais ne touche pas à ta clé auto-incrémentale
    qui par nature et sécurité ne doit pas être modifiée..

    par ailleurs, pour stocker une modification dans une table, il faut ajouter également une autre instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm2.Button2Click(Sender: TObject);
    begin;
    table1.Edit;
    table1.FieldByName('TonChamp').asstring:='coucou';
    table.Post;
    end;
    c'est le minimum en dehors du mode transactionnel..

  8. #8
    Membre à l'essai
    Femme Profil pro
    programmeur
    Inscrit en
    Novembre 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : programmeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2012
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    merci pour tes reponses,
    c'est ok! cantador

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

Discussions similaires

  1. [MOSS 2007]Recherche avancée : proprité avec un quote
    Par royto dans le forum SharePoint
    Réponses: 6
    Dernier message: 14/09/2007, 14h43

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