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 :

[D5] Ecriture dans un ADO Recordset


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Par défaut [D5] Ecriture dans un ADO Recordset
    Bonjour,

    je récupère des données d'une base de données via un objet COM dont je ne maîtrise pas le code. Cet objet me retourne un RecordSet ADO mais je souhaiterais modifier certains champs.

    J'arrive parfaitement à me "balader" dans le Recordset, supprimer des enregistrements mais impossible de modifier un champ de l'enregistrement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      RecordSetADO: OLEVariant;
    begin
      [...]
      RecordSetADO.MoveFirst;
      while not RecordSetADO.Eof do
      begin
          RecordSetADO.Fields['Mon_champ'].Value := 'toto';
          RecordSetADO.MoveNext;
      end;
      [...]
    end;
    Mais lors de l'écriture de la valeur il plante et me dit : "Une opération en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état."

    Pourtant ça a l'air de correspondre à la marche à suivre ...

    Ai-je le droit d'écrire directement dans le champ? Si non comment dois-je procéder ?

    Merci d'avance

  2. #2
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Quelle version de Delphi 5 utilises-tu ? Je sais qu'à partir de la version 5.5 Delphi vient avec les composants ADO dans lesquels on peut trouver le TADODataSet. Ce dernier possède une propriété Recordset dans laquelle tu pourrais y mettre le recordset que tu veux manipuler. Ensuite, tu n'aurais qu'a jouer avec le ADODataSet de la même façon que les DataSet standards de Delphi (Edit, Post, First, Next, etc.)

    Je n'ai pas testé toutefois mais j'ai déjà fait quelque chose de semblable par le passé.

    Bon dev!

  3. #3
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Par défaut
    Merci pour le conseil,

    je n'y avais pas pensé. Mais j'ai un soucis. L'objet que je reçois de mon composant COM est un OLEVariant (normal). Comment puis-je caster cet OLEVariant pour le mettre dans mon RecordSet de mon DataSet ?

    Sachant que cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
       RecordSetADO: OLEVariant;
    begin
        RecordSetADO := monObjetCom.Execute;
    
    
        DataSet.Recordset := _RecordSet(RecordSetADO);
    OU
        DataSet.Recordset := (RecordSetADO as _RecordSet);
    Merci

  4. #4
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Sincèrement, je ne sais pas

    Perso, vu qu'on a affaire à des variants, j'essayerais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet.Recordset := RecordSetADO;
    Mais je me trompe peut-être....

  5. #5
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Par défaut
    Naturellement c'est la première chose que j'ai déjà essayé mais ce n'était pas concluant.

    Tant pis je vais le reécrire à la volée... ce n'est pas propre mais je n'ai pas d'autres solutions.

    Merci quand même

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

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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