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

MS SQL Server Discussion :

MS SQL SERVER et les tables temporaires


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut MS SQL SERVER et les tables temporaires
    Bonjour à tous,

    Je développe actuellement un module d'impression en PHP 4 et SQL-SERVER 7 pour un centre de documentation.

    Le principe est simple :
    Il faut pouvoir déterminer une liste de formations dans une base de documentalistes à partir d'un formulaire de recherche. Un module permet ensuite d'imprimer les formations sélectionnées. La petite subtilité réside dans le fait que toutes les enregistrements provenant de la recherche ne sont pas forcément pertinants (même si l'utilisateur à + d'une 20taine de critère à disposition). L'utilisateur doit donc pouvoir supprimer les enregistrements non désirés. J'en viens maintenant à mon soucis.

    Au départ, j'utilisais une unique table tampon impression dans laquelle je stockais le résultat de la recherche et à partir de laquelle se faisaient les suppressions puis l'impression elle-même. Mais je me suis rendu compte (sur le tard ) que 2 utilisateurs faisant une recherche simultanée se télescoperaient dans leurs recherches respectives. J'ai donc voulu utiliser des tables temporaires (précédé d'un #).
    J'ai donc une première page de formulaire recherche.php qui crée ma table #impression puis une page resultat.php récupérant les critères de recherche et faisant la recherche dans la table #impression . Ca, c'est la théorie mais dans les faits, ma 2ème page est incapable de trouver ma table temporaire.

    La question est donc la suivante :
    Est-ce que les tables temporaires ne sont utilisables qu'au sein d'une unique série d'instructions SQL ? Si oui, alors, y'a-t-il une autre solution que de creer moi-même à la main des tables temporaires (qui risquent de s'accumuler si les utilisateurs ferment de manière intempestive leurs navigateurs).

    Merci d'avance et désolé pour le post un peu long.

    Benoît

  2. #2
    Membre Expert Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 1 085
    Par défaut
    Les tables temporaires sont comme leur nom l'indique temporaires et n'ont une portée étendue qu'au jeu d'instructions qui les ont crées.
    Il est donc parfaitement normal qu'une page php ne puisse pas acceder à une requete executee à partir d'une autre page.

    Il est vrai que si tu crees des tables en dynamique, tu va avoir de gros soucis de prise de poids considérable de ta base dans un laps de temps très court.

    Je pense que tu n'attaques pas le problème par le bon bout.

    Le type de fonctionnalité que tu cherches à mettre en place est typique d'un caddie de boutique en ligne. Je suis convaincu que ton problème se résoudrait bien mieux et surtout plus rapidement si tu t'inspirais des caddies electroniques.

    Bonne recherche...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 50
    Par défaut
    Bonjour,

    La portée d'une table temporaire est une session, une connexion quoi.
    Si la page resultat.php crée une nouvelle connexion, elle ne verra pas la table.
    Par contre, si c'est le même objet connexion qui est utilisé par les 2 pages, ça devrait fonctionner.

  4. #4
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut
    Tout d'abord, merci à tous les 2.

    Citation Envoyé par yan77
    Par contre, si c'est le même objet connexion qui est utilisé par les 2 pages, ça devrait fonctionner.
    Malheureusement, cela ne fonctionne pas. J'ai essayé d'utiliser une connexion permanente pour voir mais cela ne change rien : il ne retrouve pas la table créée dans ma deuxième page.

    Citation Envoyé par LooserBoy
    Le type de fonctionnalité que tu cherches à mettre en place est typique d'un caddie de boutique en ligne. Je suis convaincu que ton problème se résoudrait bien mieux et surtout plus rapidement si tu t'inspirais des caddies electroniques.
    Effectivement, je me suis reporté sur cette solution. J'avais quelques craintes sur le passage en variable de session d'un tableau pouvant contenir plus de 4000 enregistrements mais cela marche sans problème. J'aime même réussi à optimiser le fonctionnement en passant par cette méthode.

    Enfin, pour info, j'ai quand même utilisé une table temporaire pour trier mes données et effectivement, dans une suite d'instructions SQL, cela fonctionne parfaitement ! 8)

    Voilà, merci encore et à bientôt.

    Benoît

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

Discussions similaires

  1. [SQL-SERVER] "Déconnecter" les utilisateurs d'une
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 18/07/2006, 11h30
  2. Choisir Oracle ou Sql-Server pour les transactions ?
    Par Roronoa01 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 06/11/2005, 22h41
  3. [Sql] Comment lister les tables d'une base ?
    Par Mynautor dans le forum DB2
    Réponses: 6
    Dernier message: 05/09/2005, 13h21
  4. [Sql Server] Renommer une table
    Par TekP@f dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/07/2005, 10h07
  5. [Sql Server/MSDE][Create Table] limite int identity
    Par joefou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/06/2005, 09h45

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