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

Composants VCL Delphi Discussion :

Delphi & DOA


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut Delphi & DOA
    Bonjour,

    J'effectue quelques recherches pour un projet. Une des problématiques serait d'effectuer une connexion entre l'application Oracle et l'application Delphi sans passer par un BDE.
    Suite à mes recherches j'ai installé DOA et j'essaie de comprendre comment ça fonctionne pour m'en servir.
    Pour le TOracleSession, on est pas obligé de remplir le Logon database, LogonPassword et le LogonUsername c'est ça ? On peut demander à l'utilisateur de passer par une boite de dialogue TOracleLogon ?
    Peut-on à la place de cela mettre les informations dans un fichier de paramètres ?
    Comment cela fonctionne t-il sous Delphi ?

    Merci d'avance pour vos réponses
    Windows XP
    Delphi 7

    WinDev Mobile 17

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


    Sommaire > Bases de données > Oracle
    Cela explique les bases de DOA (Direct Oracle Access) [et non Dead Or Alive]
    Va sur le forum DOA, c'est des composants très spécifiques, nettement mois populaire que ADO, DBExpress (qui sont fournis avec Delphi, on se demande pourquoi chercher ailleurs ce qu'il y a déjà sans même les tester)

    Avec ces composants DOA, il doit y avoir une documentation fournie (je l'espère, car une lib sans doc c'est à bannir !)
    Tu devrais la lire !
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Oui je suis désolée je viens de tomber sur cette page, milles excuses.
    Par contre je ne comprend pas tout concernant le composant TOracleQuery, comment afficher le résultat de la requête après avoir fait un execute ? Dans un grid ? Comment ?
    Désolée pour ces questions de débutants..
    Windows XP
    Delphi 7

    WinDev Mobile 17

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Tu as un PDF fourni avec DOA, lit le ENTIEREMENT !
    Ce sont des composants tiers, peu de gens les connaissent !

    En plus la réponse est dans la FAQ - Comment se connecter à Oracle en utilisant les DOA ?

    TOracleQuery : pour exécuter n'importe quel SQL ou bloc PL/SQL dans une session.
    TOracleDataSet : Composant à utiliser si vous voulez afficher les données directement dans des DBGrid, DBEdit,...
    Toujours lire avec attention !

    Sinon, en Delphi, c'est toujours le DataSource (propriété DataSet) qui sert à connecter DBGrid, DBEdit, si TOracleQuery hérite d'un TDataSet (on peut l'espérer), il peut être utilisé comme le TQuery !

    Il faudrait revoir les bases de la manipulation de DB en Delphi !
    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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    En fait je fais des tests au fur et à mesure que je lis le pdf histoire de voir si je dois continuer plus loin...
    Ouille je suis désolée j'avais pas vu je souffre de manque de sommeil ou de sucre ou des deux !!
    Je vais tester avec le TOracleDataSet ... quelles sont les autres manières d'afficher les résultats d'une TOracleQuery ?
    Windows XP
    Delphi 7

    WinDev Mobile 17

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    J'ai suivi la faq pour afficher les données dans une DBGrid :

    Principe pour afficher les données dans une DBGrid :
    Poser un TOracleDataSet, un TDataSource (de l'onglet Data Access) et une DBGrid.
    Relier :
    - le DataSet du TDataSource au TOracleDataSet.
    - le DataSource du DBGrid au TDataSource

    C'est tout ce qu'il y a à faire ?
    En fait quand je clique sur le bouton Requête on va dire je veux que ça me lance ma requête contenu dans SQL et que ça me l'affiche dans mon DBGrid ...
    Windows XP
    Delphi 7

    WinDev Mobile 17

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Si TOracleQuery hérite d'un TDataSet, tout contrôle pouvant se connecter à un DataSource pour l'utiliser comme TDBGrid, TDBEdit, TDBComboBox ...
    Il existe chez TMS ou DevExpress de DBGrid, DBList et DBTreeView plus avancé ! C'est payant !

    Sinon, oui, connecter DataSet\DataSource\DBGrid, cela suffit !
    Tu peux prédéfinir les Columns (et leur FieldName) d'un DBGrid
    Pour les autres comme TDBEdit, TDBComboBox, c'est DataField

    Si TOracleQuery hérite d'un TDataSet, une boucle classe while not eof do next, et FieldByName et toute ton imagination pour afficher dans un TListView, TListBox, TTreeView ...
    Tu dois faire le remplissage à la main selon tes besoins !


    C'est pas du sucre qui te manque, c'est de la persévérance, tu ne peux pas poser des questions pour chaque petit soucis, le métier d'informaticien (analyse programmeur), c'est de savoir chercher l'information, tant que tu ne feras pas l'effort de comprendre vraiment les documentations que tu survoles, tu n'y arriveras pas !
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    TOracleQuery n'hérite pas d'un DataSet. Cela veut dire que mes données seront adaptées au DBGrid donc si ma requête renvoi deux lignes deux colonnes dans mon DBGrid j'aurais deux lignes deux colonnes ?? Là j'ai lancé une requête qui renvoit une ligne avec 1 dans une colonne FLAG... Cela fonctionne dans l'éditeur SQL. Mais cela ne m'affiche rien dans le DBGrid j'ai juste fait un .Execute de ma query...
    Windows XP
    Delphi 7

    WinDev Mobile 17

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    TOracleQuery n'hérite pas d'un DataSet
    C'est bien le doute que j'avais, il semble tout de même disposer de fonction tel que EOF, Next selon la FAQ, mais dommage, cela n'indique pas l'équivalent du FieldByName
    Oublie ce TOracleQuery, ce composant sera utilise pour des requêtes sans retour ou pour des traitements non visuels (on peut le supposer plus rapide que le TOracleDataSet)

    Pour le Trio TOracleDataSet\DataSource\DBGrid, oui, si tu laisse tout par défaut, que les propriétés DataSource.DataSet et DBGrid.DataSource sont renseignés, le TDBGrid lors du Open affichera tout ce que contient le TOracleDataSet
    C'est le principe même du composant TDataSet !
    Tu aurais du tenter les Tutoriels BDE\Paradox avant de passer à DOA\Oracle !
    Cela t'aurais donner les bases de la VCL DB-Aware

    Execute ou ExecSQL c'est en général pour INSERT\UPDATE\DELETE
    Regarde Active ou Open du TOracleDataSet, normalement, il est obligé de les avoir si il hérite du TDataSet
    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

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Pour tout t'expliquer :

    je suis actuellement en stage pour un gros projet et une partie de ce projet pourrait consister en fait à ne plus passer par BDE pour se connecter à oracle via une appli Delphi.
    j'ai entendu parler de DOA et j'ai installé le composant pour voir, j'ai testé une connexion avec un TOracleLogon ça fonctionne, je voulais juste tester une requête voir si ça me renvoyait le résultat.
    après j'ai fait du delphi y'a quelques années avec BDE/Paradox mais je t'avoue que je ne m'en souviens pas assez, d'où mes questions précises mais simples qui me permettent de me rafraichir la mémoire.
    je dois récupérer sous peu mes anciens cours et je compte les potasser à fond pour ne plus avoir à poser toutes ces questions.
    mais bon pour avancer dans mes tests je me permet de poster sur le forum quoi.

    Ensuite j'ai pas tout compris, où est ce que je met ma requête de sélection si je n'utilise pas TOracleQuery ?

    En gros là sur mon appli j'ai :
    - TOracleLogon
    - TOracleQuery
    - TOracleDataSet
    - TDataSource

    En sachant que j'ai relié :
    - le DataSet du TDataSource au TOracleDataSet.
    - le DataSource du DBGrid au TDataSource

    Et j'ai ma requête dans mon TOracleQuery, en gros je pense qu'il me manque à relier ma requête au TOracleDataSet non ?
    Windows XP
    Delphi 7

    WinDev Mobile 17

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    TOracleDataSet doit probablement avoir une propriété SQL ou CommandText
    Soit la doc est incomplète -> utilise ADO ou DBExpress
    Soit la doc est complète et tu ne la lit pas ->
    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

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Il y a bien une propriété SQL dans le TOracleDataSet je ne pensais pas qu'il fallait utiliser ce composant pour avoir un lien c'est encore de ma faute.
    J'ai pu récupérer mes cours sur BDE/Paradox, promis je les potasse ce soir.
    Merci

    Par contre, j'ai donc enlevé le TOracleQuery et mis la requête dans SQL du TOracleDataSet mais le DBGrid ne se remplit pas, j'ai pourtant fais la connexion à la base de données via un TOracleLogon sur le OnCreate du formulaire ...

    Edit : ça fonctionne en fait si je met les paramètres de connexion dans le OracleSession mais bon je ne veux pas que ce soit écrit en dur, je préfèrerai que l'utilisateur les saisisse via le TOracleLogon ou via un fichier ini...
    Je vais voir si je trouve une fonction refresh du DBGrid qui se ferait après une connexion TOracleLogon...
    Windows XP
    Delphi 7

    WinDev Mobile 17

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Pour démarrer, ouvre la connexion dans un bouton plutôt que OnCreate
    Tu devrais avoir un objet TOracleSession

    Dans un autre bouton, ouvre le DataSet, pense à connecter le DataSet qui doit avoir une propriété Session ou Connexion sur le TOracleSession
    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

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure Tfrm_TestConnectOracleDBGrid.bt_ConnexionClick(Sender: TObject);
    begin
    OracleLogon1.Execute;
    end;
     
    procedure Tfrm_TestConnectOracleDBGrid.bt_DataSetClick(Sender: TObject);
    begin
    OracleDataSet1.Active :=True;
    end;
    Sur un bouton je demande à l'utilisateur de se loguer...
    Mon DataSet est bien relié au TOracleSession...
    J'ai fait un .Active sur OracleDataSet parce que dans la doc :

    If the Session is logged on, you can set Active to True in order to open the dataset

    Et... ça fonctionne

    Je te remercie encore de ton aide !
    Windows XP
    Delphi 7

    WinDev Mobile 17

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    J'ai une petite question :

    Je veux qu'après chaque requête je me déconnecte de la base, et à chaque nouvelle je me reconnecte dans que mon utilisateur ait besoin de ressaisir les paramètres de connexion (qu'il faut néanmoins saisir à chaque ouverture d'application) j'utilise donc les logon et logoff :

    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 Tfrm_TestConnectOracleDBGrid.bt_ConnectClick(Sender: TObject);
    begin
    OracleLogon1.Execute;
    username := OracleSession1.LogonUsername;
    password := OracleSession1.LogonPassword;
    database := OracleSession1.LogonDatabase;
    end;
     
    procedure Tfrm_TestConnectOracleDBGrid.bt_ReqClick(Sender: TObject);
    begin
    if OracleSession1.Connected = True then
      OracleDataSet1.Active :=True;
    else
      begin
      OracleSession1.LogonUsername := username;
      OracleSession1.LogonPassword := password;
      OracleSession1.LogonDatabase := database;
      OracleSession1.LogOn;
      OracleDataSet1.Active := True;
      end;
    OracleSession1.LogOff;
    end;
    Mais là vu que je me déconnecte je ne garde pas l'affichage dans mon DBGrid... Comment puis-je faire?
    Existe t-il des composants autres que DOA pour faire la liaison Delphi Oracle ?
    Windows XP
    Delphi 7

    WinDev Mobile 17

  16. #16
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Quelque soit les composants, vu ton architecture, tu auras tout le temps le même problème.

    Il faut copier les données du DataSet de ta requête vers un autre dataset qui lui sera connecté à ta DBGrid.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  17. #17
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    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 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Ne te déconnecte pas !
    ou utilise un TClientDataSet dans lequel tu auras cloné les Données !

    On est pas en C# avec ce satané using à la noix !
    C'est une manie récente de vouloir fermer\ouvrir en permanence les connexions ? je ne sais pas où cette pratique est conseillée, moi, en 11ans de métier, je ne l'ai jamais vu sur des bases SQL utilisée en réseau local
    Ne t'inquiète pas tu n'es pas le seul à vouloir faire cela, en Delphi, c'est tout juste pas la pratique standard !

    Lorsque l'on attaque des DB SQL en WAN, conserver les connexions, cela peut devenir plus "problématique" (je l'ai fais avec du tunnelling ssh, je n'ai eu aucun problème pour conserver des connexions pendant plusieurs heures)
    Pour une application extrément "distribué", il faudrait utiliser une architecture multi-tiers (voir DataSnap), et je ne penses pas que cela soit d'actualité pour toi pour le moment !
    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

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Quelque soit les composants, vu ton architecture, tu auras tout le temps le même problème.

    Il faut copier les données du DataSet de ta requête vers un autre dataset qui lui sera connecté à ta DBGrid.
    Pour le composant c'était une question à part ...
    Je tenterai ça...

    ShaiLeTroll :

    C'est une demande que l'on m'a faite en fait...je suis stagiaire donc bon j'essaie lol.
    C'est pour pas que la connexion reste ouverte en permanence mais uniquement quand on en a besoin : requête !! Histoire que ce soit pas trop lourd ou trop lent non ?

    C'est à dire pour le TClientDataSet ? J'ai vu que c'était pour stocker les données en mémoire... En fait ma requête je la stocke là dedans et j'alimente mon DBGrid avec ?
    J'ai beau lire l'aide Delphi je ne comprend pas tout...
    Windows XP
    Delphi 7

    WinDev Mobile 17

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Quelque soit les composants, vu ton architecture, tu auras tout le temps le même problème.

    Il faut copier les données du DataSet de ta requête vers un autre dataset qui lui sera connecté à ta DBGrid.
    Comment fonctionne une copie avec un TOracleDataSet ? J'ai trouvé sur le net
    Copy
    GetChange
    ou
    Clone
    Mais ça n'a pas l'air d'être disponible quand je tape le code avec mon TOracleDataSet ?
    Windows XP
    Delphi 7

    WinDev Mobile 17

  20. #20
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Je proposais la même chose que Shai (TClientDataSet).

    Le principe est d'ajouter un TClientdataSet avec les mêmes champs que ton TOracleDataSet et de copier celui-ci lignes à lignes dans le ClientDataSet
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

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

Discussions similaires

  1. Delphi 7 et DOA : valeurs nulles
    Par delphim dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/11/2004, 09h18
  2. [delphi 7 / DOA] valeur null dans setvariable
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/11/2004, 10h14
  3. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  4. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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