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 :

[Access] Enregistrer des données de type Texte RTF


Sujet :

Bases de données Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut [Access] Enregistrer des données de type Texte RTF
    Bonjour, je me demandais si il était possible d'enregistrer du Texte RTF (Mise en forme) dans Access. En tant que Stream où autres ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Oui sans aucun problème, il faut que le type du champ soit mémo.

    Pour l'enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.fieldbyname('note').assign(RichEdit1.Lines);
    Pour l'affectation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if not Table1.fieldbyname('note').isnull then
      RichEdit1.text := Table1.fieldbyname('note').AsString;

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Et le style du texte sera respecté (Font)

  4. #4
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Normalement oui.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Et pour le type de champ, je le mets en tant que Memo ou OLE. Si j'ai bien compris, OLE prends tout type de données ?

  6. #6
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Le memo fera l'affaire.

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Citation Envoyé par delphichem
    Le memo fera l'affaire.
    Bein, d'après mes tests, seul le texte sans la mise en forme est pris en compte

  8. #8
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Citation Envoyé par portu
    Bein, d'après mes tests, seul le texte sans la mise en forme est pris en compte
    J'ai réalisé une application et j'ai utilisé ole pour stocker le contenu d'un RichEdit, d'où j'ai extrais le bout du code que je t'ai précédemment posté, je ne sais pas pourquoi j'ai affirmé que tu devais utiliser le type memo. Enfin, espérons que je n’arriverais pas à confondre integer et string la prochaine.

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Citation Envoyé par delphichem
    Citation Envoyé par portu
    Bein, d'après mes tests, seul le texte sans la mise en forme est pris en compte
    J'ai réalisé une application et j'ai utilisé ole pour stocker le contenu d'un RichEdit, d'où j'ai extrais le bout du code que je t'ai précédemment posté, je ne sais pas pourquoi j'ai affirmé que tu devais utiliser le type memo. Enfin, espérons que je n’arriverais pas à confondre integer et string la prochaine.
    Ha je vais regarder de ce coté là alors.
    merci beacoup

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Fonction toujours pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RichEdit1.text := Table1.fieldbyname('note').AsString;
    Quand je fais ca, il me donne le premier caractère non formaté.

  11. #11
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Je viens de testé, cela fonctionne tres bien chez moi.

  12. #12
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Pour information j'utilise Delphi 7 Access 2003

  13. #13
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Et avec un dbRichedit directement lié au champs, ca fonctionne pas ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  14. #14
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Citation Envoyé par delphichem
    Pour information j'utilise Delphi 7 Access 2003
    Moi aussi !
    Mais je ne travaille pas directement sur la table (Par TADOCommand et TADOQuery. La problème viendrait de là ?

  15. #15
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Citation Envoyé par Malatar
    Et avec un dbRichedit directement lié au champs, ca fonctionne pas ?
    Je n'aime pas trop de jouer avec les DBControl

  16. #16
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Citation Envoyé par portu
    Je n'aime pas trop de jouer avec les DBControl
    moi je n'aime pas dutout et je n'utilise jamais les dbcontrol.

    Moi j'utilise un AdoTable, essaies pour voir.

  17. #17
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    peut importe que vous aimiez ou pas ce type de composant , ca permettra de tester si le champ a bien enregistrer les données dans le champs. Car vous vous cassez la tête depuis un bon moment alors que le champs n'est peut être pas correctement écrit.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  18. #18
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    En ce qui me concerne tout fonctionne trés bien, les données sont correctement écrit.

  19. #19
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Citation Envoyé par Malatar
    peut importe que vous aimiez ou pas ce type de composant , ca permettra de tester si le champ a bien enregistrer les données dans le champs. Car vous vous cassez la tête depuis un bon moment alors que le champs n'est peut être pas correctement écrit.
    Mmmm c'est vrai ça .

    Mais je me pose quand même des questions sur les enregistrements de formats binaires.


    Comment faire pour, par exemple, enregistrer et lire (Dans Access) un flux mémoire quelconque (Images, fichiers, Tableaux Record, etc...) venant d'un type TStream ?

    Je pense qu'il faut voir de ce coté là !

    Je pense que la propriété GetData (D'après l'aide Delphi fera l'affaire).
    Que se soit des données Texte formaté, fichier, image, etc... , on devrait pouvoir passer par là.

    A tester, je vous tiens toujours au courant.

    Merci

  20. #20
    Membre expérimenté
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Par défaut
    Voici un exemple que je viens de créer:

    .pas
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, ExtCtrls, DBCtrls, StdCtrls, ComCtrls;
     
    type
      TForm1 = class(TForm)
        RichEdit1: TRichEdit;
        Save: TButton;
        DBNavigator1: TDBNavigator;
        Table1: TADOTable;
        DataSource1: TDataSource;
        procedure SaveClick(Sender: TObject);
        procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.SaveClick(Sender: TObject);
    begin
      with Table1 do
      begin
        Insert;
        FieldByName('Note').Assign(RichEdit1.Lines);
        Post;
      end;
    end;
     
    procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    begin
      RichEdit1.Text := Table1.FieldByName('Note').AsString;
    end;
     
    end.
    et son .Dfm:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    object Form1: TForm1
      Left = 193
      Top = 114
      BorderStyle = bsDialog
      Caption = 'Form1'
      ClientHeight = 324
      ClientWidth = 496
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Shell Dlg 2'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object RichEdit1: TRichEdit
        Left = 8
        Top = 8
        Width = 481
        Height = 273
        TabOrder = 0
      end
      object Save: TButton
        Left = 8
        Top = 288
        Width = 75
        Height = 25
        Caption = 'Enregistrer'
        TabOrder = 1
        OnClick = SaveClick
      end
      object DBNavigator1: TDBNavigator
        Left = 264
        Top = 288
        Width = 224
        Height = 25
        DataSource = DataSource1
        VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast]
        TabOrder = 2
        OnClick = DBNavigator1Click
      end
      object Table1: TADOTable
        Active = True
        ConnectionString = 
          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Dev\Help\bd1.mdb' +
          ';Persist Security Info=False'
        CursorType = ctStatic
        TableName = 'Table1'
        Left = 168
        Top = 288
      end
      object DataSource1: TDataSource
        DataSet = Table1
        Left = 216
        Top = 288
      end
    end
    La base de donnée est créee "db1.mdb" dans l'emplacement suivant D:\Dev\Help, elle contient les champs suivants:
    Id NuméroAuto clé
    Note Objet Ole

    J'ai copié un petit text de word formaté avec changement de couleur, de style, de font et de taille.
    J'ai ensuite collé dans RichEdit1, puis j'ai cliquer sur enregistrer.
    J'ai fais quelques petit changement et appuyer encore sur Enregistrer.
    j'ai quitté l'application, puis j'ai relancé en cliquant sur le DBNavigator, j'ai remarqué que tout fonctionne correctement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/06/2009, 22h38
  2. Réponses: 3
    Dernier message: 01/09/2008, 13h46
  3. Réponses: 3
    Dernier message: 03/10/2007, 12h24
  4. Réponses: 5
    Dernier message: 27/06/2007, 17h08
  5. Réponses: 2
    Dernier message: 14/05/2007, 09h40

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