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 actif
    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
    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
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    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.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 074
    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
    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
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    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 786
    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 Expert 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
    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 actif
    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
    Par défaut
    oui justement , puisque je suis entrain de tester la propriété asstring

  7. #7
    Membre éclairé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    572
    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 : 572
    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 actif
    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
    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