|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
bonjour
Je développe une application client serveur (langage de programmation Delphi le moteur de base de donné SQL serveur édition standard 2005 ) le serveur sur la pc et les client sur des machines virtuel ,la connexion est bonne mais mon problème est le suivant : Les modifications des données des tables des postes client ne figure pas dans la machine serveur sauf si je rafraichie la base du coté serveur ( tous ce que je veux que les modifications soit rafraicher automatiquement entre les postes client et le serveur ) Merci d’avance |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Tout dépend comment vous avez programmé et quels objets vous avez utilisé dans Delphi.
Par exemple avec des client dataset, ce serait normal. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
BONJOUR
J’ai programmée avec Delphi Les composants utilisés : Ttable, DataSource Database Session StoredProc |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Il ne faut pas utiliser les TTable. Un SGBDR C/S travaille par requête SQL, pas table par table.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
Bonjour
Monsieur je demande votre conseil, d’ai développée un logiciel avec delphi avec ttable, et voila que je m’affronte au problème cité au dessous, Dit moi Monsieur comment je peux transformer mon logiciel de ttable à sql sachant que j’ai travail le corps de programme a 90 % sous les événements de ttable . D’une manier rapide Merci a l’avance (Désolée si j’ai pris le temps de répondre problème d’électricité avec toute cette neige)
|
|
|
01
|
|
|
#6 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Il faut les changer en TQuery.
Demandez de l'aide sur le forum DELPHI. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 7 845 ![]() |
En Paradox, un TTable ouvert n'appliquait pas les données tant que l'on a pas fait un Close() ou un FlushBuffers !
En Interbase, j'avais tout remplacer par des TQuery à coup de SELECT, INSERT, UPDATE... du SQL ! Sinon le BDE c'est obsolète depuis 10 ans ! Tous les ans Thierry Laborde fait son discours sur comment remplacer le BDE par DBExpress ! Comme cela utilise ODBC en interne, tu devrais migrer vers ADO et TADOQuery ! Vu que tu dois passer en SQL, autant changer le fournisseur d'accès au passage ! Attention, c'est vraiment une autre méthode de programmation ! C'est un gros chantier ! Ensuite pour le rafraichissement, si tu as une modification sur le Poste A, j'ignore les mécanismes SQL Server à ce sujet, mais le Poste B doit relancer le SQL, c'est d'ailleurs tout la problématique des accès concurrentiel, deux Poste ouvre la même fiche, la modifie, selon la configuration des transactions et des mise à jour, cela peut refuser la 2nde modification car les données sont obsolètes et nécessite une réconciliation ! Le Edit\Post du TADOQuery vont gérer la réconciliation plus ou moins facilement comme dans le sujet : insert DBGrid avec TADOQuery et requete avec jointure Personnellement, je préfère un ClientDataSet qui permet les modifications purement locales et générer moi même le SQL (par une couche métier et une couche OR) pour une meilleure maîtrise des flux et optimisations ! en InterBase, il y a un système de Notification si je ne me trompe pas, il faudrait un équivalent SQL Server, si ça existe
__________________
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 Parisien ! Dites NON à la VO ST au Cinéma ! Soit VF Soit VO sans sous-titre |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
Bonjour
Une question : est ce que je peux travail (client/ serveur) sans utiliser le langage SQL ?. Pour ne pas refaire tous le travail je transforme BDE à ADO est ce que c’est une bonne décision Merci a l’avance
|
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : décembre 2004 Messages : 294 ![]() |
En Client/Server, je ne pense pas que les tables soient les composants les plus adéquats ! Le langage SQL s'y prête nettement mieux et, donc, mérite le temps que ça prendra.
NB : On est tous passé par les TTables ! |
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
Merci
Je vais apprendre le SQL. A bien tôt |
|
|
00
|
|
|
#11 | ||||
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
J’ai fais un petit exemple,
Langage DELPHI 7, Moteur de base de données SQL Server 2005, Les composants : ADOConnection1, ADOQuery1, DataSource1 J’ai créé 2 exécutables : un copy dans la machine virtuel et l’autre dans la machine principale, Le code source est le suivant Code :
Code :
|
||||
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Inscription : décembre 2004 Messages : 294 ![]() |
Je ne travaille pas avec SQL Server mais, à mon avis, il te manque un Commit et un refresh sur la machine distante !
|
|
|
00
|
|
|
#13 |
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 3 625 ![]() |
Bonjour,
Moi je dirais que c'est plus complexe que ça , mais je ne suis pas un fan D'ADO . Tout d'abord merci d'encapsuler le code (balises CODE, /CODE faite par le bouton #) Remarques
Je suis sur qu'il y a un tutoriel avec ADO
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius |
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Développeur informatique Inscription : août 2006 Messages : 199 ![]() |
Selon la méthode que tu utilise, je pense qu'il te faut faire un Post, puis un refresh sur le composant AdoQuery après chaque mise à jour.
|
|
|
00
|
|
|
#15 | |
|
Membre émérite
![]() Dev/For/Vte/Ass Inscription : août 2008 Messages : 1 312 ![]() |
Citation:
@ROMILA Pour ton problème réseau, essai un open close (plutot qu'un active true/false), pour voir. Sinon utilise plutot clUserClient pour ton cursorLocation. @+ |
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() ROMILA LIZA Inscription : mars 2011 Messages : 30 ![]() |
Merci pour toutes les réponses
Pour activer désactive la base à chaque foi c pas intéressant, sur tous dans la programmation client/ serveur. Mais pour l’utilisation de clUserClient je vais voire |
|
|
00
|
|
|
#17 | ||||||
|
Membre confirmé
![]() Inscription : mai 2007 Messages : 315 ![]() |
Je pense qu'il faudrait séparer l'initialisation des composants ADOConnection et ADOQuery d'une part et les méthodes de sauvegarde / récupération des données de l'autre.
Dans l'exemple proposé ('J’ai créé 2 exécutables') par ROMILA je dirais que l'initialisation à lieu dans une méthode de récupération de données (cf. 'SELECT * FROM ST_Fart'), mais la méthode de sauvegarde n'en connait rien. Code :
Code :
Code :
__________________
"Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre." Galilée |
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com