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

Requêtes PostgreSQL Discussion :

Simuler un déplacement sur PostGis


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Par défaut Simuler un déplacement sur PostGis
    bonjours tout le monde.

    j'ai une table "personne" qui a comme colonnes: ID,chemin(geom) et position(geom).
    ma première approche pour simuler une personne qui se déplace sur la carte et d'utiliser une fonction qui modifie la position de celle toutes les 10s(exemple) selon le chemin:
    voici ma fonction sur postgresql


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     loop
      update personne as t1 set position=
    (  SELECT ST_Line_Interpolate_Point (chemin, 
     
    								 (counter*(select ST_Length(chemin:: geography) ))) from personne as t2 where t1.id=t2.id); 			
    pg_sleep( 10) ; 
    PERFORM dblink('connex','COMMIT;');
    								  counter := counter + 1 ;
     
     
     
     END LOOP ;

    mais le probleme est que ;quand je fais une requette select (touts les 10s) sur la colonne position ,elle me rend toujours le même résultat qui est avant le début de la boucle (loop) et quand ça c'est terminé elle me rend le dernier résultat .
    or je veux récupérer le résultat toutes les 10s .je crois que la boucle met un verous sur la colonne jusqu'a ce qu'elle se termine.

    ma question est ce qu'il y a une possibilité de récupérer la position toutes les 10s ou sinon est ce que quelqu'un peut m'aider avec une autre aproche .


    je vous remercie aidez mois s'il vous plais

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 009
    Billets dans le blog
    6
    Par défaut
    Une fonction étant par nature atomique (transaction implicite) , et PostGreSQL ne faisant que du verrouillage optimiste, le résultat de la fonction ne sera effectif qu'une foi l'exécution terminée.

    C'est d'ailleurs une absurdité que de faire des fonctions qui change l'état de la base (c'est totalement anormatif, mais c'est le fait que jusqu'à peu PostGreSQL n'implémentait pas les procédures.).

    Pour faire cela :
    • utilisez une procédure.
    • ou bien planifiez l'exécution de votre fonction dans l'Agent SSQL et ne faite qu'un déplacement à chaque coup.



    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Par défaut
    merci beaucoup pour votre attention et votre réponse .pourriez vous m'expliquer d'avantage comment une procédure peut régler mon problème et merci

Discussions similaires

  1. Fonction de déplacement sur Postgis
    Par ratzel dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/02/2019, 13h26
  2. Simuler un appui sur un DBGrid
    Par maw dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/10/2005, 10h45
  3. Simuler le clavier sur une fenêtre plein-écran ?
    Par Cracking_Cow dans le forum Windows
    Réponses: 10
    Dernier message: 23/08/2005, 13h20
  4. Réponses: 4
    Dernier message: 25/07/2005, 15h24
  5. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 13h51

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