Skip to main content

Le Blog de Thomas Mertens

Go Search
Home
  

Comment récupérer la description d’une colonne (SQL2005) ?

Vous savez tous probablement que l’on peut, en utilisant une procédure stockée, rajouter des descriptions aux colonnes de nos tables SQL 2005.

 

EXEC sys.sp_addextendedproperty

      @name=N'MS_Description',

      @value=N'la description à rajouter à la colonne' , /*à modifier*/

      @level0type=N'SCHEMA',

      @level0name=N'dbo',

      @level1type=N'TABLE',

      @level1name=N'la_table',  /*à modifier*/

      @level2type=N'COLUMN',

      @level2name=N'la_colonne' /*à modifier*/

 

Mais c’est nettement plus compliqué de récupérer cette information donc comme un petit exemple vaut mieux qu’un long discours voici la marche à suivre ;-)

 

SELECT 

    [Table Name]  = OBJECT_NAME(c.object_id),

    [Column Name] = c.name,

    [Description] = ex.value 

FROM 

    sys.columns c 

LEFT OUTER JOIN 

    sys.extended_properties ex 

ON 

    ex.major_id = c.object_id

    AND ex.minor_id = c.column_id 

    AND ex.name = 'MS_Description' 

WHERE 

    OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 

    -- AND OBJECT_NAME(c.object_id) = 'your_table'

ORDER 

    BY OBJECT_NAME(c.object_id), c.column_id

 

Comment mettre un site ASP.NET hors ligne ?

Vous aimeriez bien mettre votre site hors ligne un instant histoire de le mettre à jour mais pas question de montrer à vos utilisateurs l'immonde "yellow screen of death" (YSOD).

 

Il existe une méthode simple et efficace, il vous suffit de créer une page HTML se nommant "app_offline.htm" à la racine de votre site Web.

 

IIS détecte cette page dans la racine du site et déviera toutes les requêtes sur cette page automatiquement.

 

Une petite restriction tout de même, il semblerait que pour fonctionner la page doivent faire un minimum de 512 ko, je n'ai pas pu / su reproduire le bug mais dans le doute une petite image pour alourdir la page et le tour est joué. ;-)

Réorganiser rapidement les tab order

Bon un petit tuto rapide sur un outil trop peu utilisé et pourtant fort pratique.

Il existe dans Visual Studio une option pour gérer de manière visuelle les tab order, ce qui fait gagner pas mal de temps.

 

Marche à suivre :

 

Ouvrir la forme en mode design puis se rendre dans le menu View – Tab Order

 

 

De petits numéros apparaissent dans le coin supérieur gauche de vos contrôles, il suffit alors de cliquer sur chaque contrôle dans l'ordre souhaité pour créer visuellement le tab order.

 

Quand tous les contrôles ont été ordonnés il vous suffit de sauvegarder la forme, un petit build et le tour est joué ;-)

 

Supprimer tous les caractères qui ne sont pas des chiffres.

Une petite fonction qui permet de supprimer facilement tous les caractères qui ne sont pas des chiffres dans une chaîne de caractères sans pour autant la convertir en décimal ou autre. (pour ne pas perdre les 0 devant par exemple).

 

private static string OnlyNumbers(string expression)

{

      string retour = "";

      char[] charArray = expression.ToCharArray();

 

      for (int i =0; i< charArray.Length; i++)

      {

            if(char.IsNumber(charArray[i]))

                  retour += charArray[i];

      }

      return retour;

}

Se débarrasser des accents dans une chaine de caractères.

 

Une petite fonction qui permet de supprimer facilement les caractères accentués dans une chaîne de caractères.

 

J’utilise pour ce faire 2 tableaux de char le premier contient les caractères que je ne veux plus voir apparaitre dans ma string et le second les caractères de substitution. Il est donc très facile de modifier les tableaux pour prendre plus ou moins de caractères en compte.

 

private static string SansAccents(string expression)

{

      string retour = expression;

 

      char[] accent =         "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç".ToCharArray();

      char[] sansAccent =      "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc".ToCharArray();

     

      for(int i=0; i< accent.Length; i++)

      {

            retour = retour.Replace(accent[i].ToString(),sansAccent[i].ToString());

      }

      return retour;

}

Pagination à la demande dans SQL Server 2000.

Un petit morceau de code qui montre une façon simple d’implémenter la pagination à la demande dans SQL Server 2000.

 

L’exemple est fait pour être utilisé sur la base de données Northwind.

 

DECLARE @PageSize    int

DECLARE @PageIndex   int

DECLARE @RowNumBegin int

DECLARE @RowNumEnd   int

 

SET @PageSize    = 10

SET @PageIndex   = 1

SET @RowNumBegin =(@PageIndex -1) * @PageSize

SET @RowNumEnd   = @RowNumBegin + @PageSize

 

SELECT ContactName, ContactTitle, Address, City, RowNum = Identity (int, 1, 1)

INTO #t

FROM Customers

ORDER BY ContactName

 

SELECT *

FROM #t

WHERE RowNum BETWEEN (@RowNumBegin +1) AND @RowNumEnd

 

DROP TABLE #t

 

 ‭(Hidden)‬ Admin Links