Salut,
je suis entrain de réaliser une application avec borland c++ builder 6 dans un réseau local et j'ai une base de données paradox 7 dans le serveur et le composant DBgrid dans la partie client.
comment manipuler DBgrid avec les sockets?
Merci.
Salut,
je suis entrain de réaliser une application avec borland c++ builder 6 dans un réseau local et j'ai une base de données paradox 7 dans le serveur et le composant DBgrid dans la partie client.
comment manipuler DBgrid avec les sockets?
Merci.
Merci de poser des questions précises,pour espèrer obtenir des réponses convenables
Un bout de code,une explication du problème en rapport avec le code posté , un tour du côté de la FAQ ou des codes sources, avant de poster t'aiderons a obtenir de l'aide
Merci
vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
je vous en souhaite une excellente lecture ...
A lire : Les règles du forum
Sache que Paradox se manipule parfaitement via un partage de fichier Windows ou Samba !
C'est probablement un exercice scolaire, l'utilisation du TCP\IP doit être fait par le programme
Il faut commencer par découper la problématique !
* Il faut savoir lire une Table (voir TTable\TQuery)
* Il faut savoir communiquer (voir TClientSocket\TServerSocket ou TTCPClient\TTCPServer, il y a aussi Indy ou ICS)
* il faut définir un protocol d'échange, un TClientDataSet peut founir un outil de sérialization !
Voici un scénario possible !
* Client :
- DBGrid + DataSource + ClientDataSet
On peut utiliser un TMemoryStream pour alimenter le ClientDataSet via la fonction LoadFromStream
1- le client demande la visualition d'une Table et envoie la commande sous format texte : "OPEN:TABLE:LeNomDeMaTable"
2- le server reçoit la demande, analyse la demande, créé un objet TTable avec TableName contenant "LeNomDeMaTable.db" lié à un TDatabase qui défini l'alias
3- Le TTable créé est relié à un TDataSetProvider et ClientDataSet, tu ouvres ce dernier, avec SaveToStream(XML), tu obtiens une version sérializée de la Table, tu renvoie un buffer comme "DATA:TABLE:LeNomDeMaTable:<xml datapacket ...>
4- le client reçoit la réponse, analyse et découpe le Buffer, un LoadFromStream du TClientDataSet !
Le tour est joué !
Très simpliste, pas très performant mais l'idée est là !
on pourrait imaginer une autre forme de commande comme "RUN:SQL:SELECT * FROM LeNomDeMaTable", qui utiliserait un TQuery à la place d'un TTable pour récupérer moins d'enregistrement !
Ensuite avec Midas, il est possible de développer son propre DataSetProvider pour gérer l'utilisation de paquets de données !
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager