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 :

champ TEXTE dans un DBGRID


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut champ TEXTE dans un DBGRID
    Salut,

    Je cherche à afficher le contenu d'un champ TEXTE dans un DBGRID. J'ai fais des essais avec un TDBCTRLGRID, mais le resultat n'est pas génial.

    Existe-il une solution pour que la requete SQL n'extrait qu'une partie du champ ? (affichage que de x caractères du champ et affichage complet dans un MEMO quand l'utilisateur clique sur le DBGRID)

    Merci.

  2. #2
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338

  3. #3
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Il faut définir un GetText sur la zone mémo :

    1) Dans ta fenêtre (ou datamodule), tu ajoutes un événement pour le GetText :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure memoGetText(Sender: TField; var Text: String; DisplayText: Boolean);
    2) après ouverture de ton dataset, tu rediriges toutes les zones Memo vers cet d'événement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TFrameSQLGrid.leDataSetAfterOpen(DataSet: TDataSet);
    var
      i : integer;
    begin
      // on redirige les zones memo vers memoGetText
      for i := 0 to DataSet.FieldCount - 1 do
        if (DataSet.Fields[i] is TMemoField) then
          DataSet.Fields[i].OnGetText := memoGetText;
    end;
    3) Le code de memoGetText :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    procedure TForm1.memoGetText(Sender: TField; var Text: String; DisplayText: Boolean);
    var
      i : integer;
    begin
      try
        Text := sender.AsString;
        if displayText then
        begin
          i := pos(#13,Text);
          if i > 0 then
            Text := copy(Text,1,i-1) + '...';
        end;
      except
        on e: EDBEngineError do
          if ((e.errors[0].ErrorCode = DBIERR_INVALIDBLOBHANDLE) or  (e.errors[0].ErrorCode = ERRCODE_INVALIDBLOBHANDLE)) then
            Text := 'Handle de blob invalide, essayez de mettre BLOBS TO CACHE=-1 dans les paramètres de la connexion'
          else
            Text := e.message;
        on e: Exception do
          Text := e.message;
      end;
    end;
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/02/2006, 09h13
  2. Afficher un champ memo dans un dbgrid
    Par CharleLéo dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/11/2005, 17h21
  3. mise à jour de champ monétaire dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/08/2005, 11h49
  4. Insérer le contenu d'un champ texte dans un JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2005, 14h12
  5. Champ text dans table inserted ?
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/06/2004, 17h00

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