Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2012, 23h39   #1
Futur Membre du Club
 
Homme Sid Ahmed TOUBAL
Ingénieur développement logiciels
Inscription : juillet 2010
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Sid Ahmed TOUBAL
Localisation : Algérie

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

Informations forums :
Inscription : juillet 2010
Messages : 47
Points : 17
Points : 17
Envoyer un message via MSN à s.toubal Envoyer un message via Skype™ à s.toubal
Par défaut SQL SERVER et XML

voila je suis débutant sur SQL Server,
je développe en C# et Silverlight.
Pour fair des requêtes SQL génériques à travers un service WCF la seule manière que jais trouver pour retourner un résultat générique(non typé) à l’application silverlight était de transformer mes requêtes en xml et retourner des string que je Parse de l'autre coté et reconstitue des objets dynamiquement en utilisant les réflexions.
mais pour ce faire il me faut un moyen pour récupéré le type des champs résultat de ma requête, ce que j’effectue avec ce bout de code
la requête est exécutée juste après et je renvois deux chaines XML l'une contenant les types des champs et l'autre les données (que g pas montré ici mais qui est plus simple)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT TOP 0 * INTO ##Table_Temporaire FROM  
(
       --la requête à exécuter ici
       SELECT * FROM Ma_Table
) 
AS T 
 
 
SELECT 
( 
SELECT COLUMN_NAME,DATA_TYPE 
FROM tempdb.INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = '##Table_Temporaire'  
FOR XML RAW
) AS Retultat_xml
 
 
DROP TABLE ##Table_Temporaire
mes question sont:
  1. existe il un moyen pour avoir le même résultat sans passer par une table temporaire pour commencer ?
  2. le fait d'utiliser une sous requête me pose des problèmes pour les requêtes contenant des ORDER BY donc pour l'instant je fait de la gymnastiques pour mes requêtes je doit enlever le dernier ORDER BY avant de former ma raquette,existe il une autre solution ?
s.toubal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 18h31   #2
Membre émérite
 
Homme Serge RUQUET
Consultant informatique
Inscription : août 2006
Messages : 669
Détails du profil
Informations personnelles :
Nom : Homme Serge RUQUET
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 669
Points : 840
Points : 840
a mon avis, passer la table temporaire te rend la tache plus facile, mais attention, sql server ne fait pas toujours un typage exact dans un select into.

2- pour ne pas avoir a enlever ton order by, tu as la ruse du vieux qui consiste a rajouter un dernier select après ta requête contenant un order by:

Code :
1
2
SELECT * FROM 
(SELECT ... FROM ...  ORDER BY ...) a
normalement il va te retourner ordonné par la sous requête
__________________
Errare humanum est, perseverare diabolicum (Sénèque)
serge0934 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2012, 10h34   #3
Futur Membre du Club
 
Homme Sid Ahmed TOUBAL
Ingénieur développement logiciels
Inscription : juillet 2010
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Sid Ahmed TOUBAL
Localisation : Algérie

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

Informations forums :
Inscription : juillet 2010
Messages : 47
Points : 17
Points : 17
Envoyer un message via MSN à s.toubal Envoyer un message via Skype™ à s.toubal
Merci pour votre réponse,
pour ce qui est de rajouter un select après le ORDER BY ma requête vas me retourné le résultat de ce dernier SELECT dans ce cas alors que je veux le résultat de la première ! pouvez vous expliquer par un exemple ?
Merci.
s.toubal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web