lundi 5 août 2013

Mise en place de Web API - MVC4


Bonjour à tous, aujourd’hui dans ce billet nous allons voir et appréhender une nouveauté de MVC 4 qui est les WEB API. Pour faire simple, est le WEB API de MVC4 permet principalement de faire du REST (REpresentational State Transfer) afin de piloter les données envoyées depuis différentes sources :
  1. le serveur reçoit un requête HTTP (http://mon-site.com/api/GetProducts)
  2. le serveur traite la demande (base de données, calcul etc…
  3. le serveur renvoi la requête sous forme XML/JSON au client.

mardi 30 juillet 2013

Recherche JQuery (Ctrl+F)


Aujourd’hui un petit bout de JavaScript pour effectuer une recherche dans un bloc HTML. L’exemple montre comment rechercher une occurrence (sans respect de la casse) dans un bloc, afficher le nombre de résultat, et passer a l’occurrence suivante en appuyant sur ENTREE.

mercredi 24 juillet 2013

Ajout d’item dans le bouton droit windows (shell)


Aujourd’hui nous allons voir comment ajouter un item dans le contexte menu Windows lors du clic droit.
image

mardi 22 janvier 2013

Mise place des liens externe sur Blooger

Astuce toute simple, pour que tous vos liens ouvrent une nouvelle fenetre ou onglet sur votre site Blogger sans avoir a ajouter chaque fois target="_blank" dans vos URL.

Il vous suffit de modifier votre Modèle de page (en HTML) et d'ajouter dans le HEAD de votre modèle la ligne suivante :

[...]
 
[...]

Voila.

Objet List (IList) et référence (pointeur)

Petit billet concernant les références des objets en C#.

Je viens de constater un principe auquel je n'avais pas fait attention, a savoir la modification (par référence) d'un objet présent dans une IList.

Savoir si les clés étrangères (FK) sont présente (Oracle)


Pour connaitre les tables qui dispose ou non de foreign key (clés étrangères –FK). j’ai conçus une petit fonction Oracle pour déterminer l’existence sur une table d’une FK par rapport a un champs.

lundi 21 janvier 2013

Merge Oracle et Taod


Ou comment mettre a jour des données d’une base sur une autre base oracle (ou un autre schéma)… Cas qui arrive assez fréquemment sur les environnements de production, de test/recette, de développement et d’intégration.

Toad est un formidable outil pour tous ce qui touche la base de données. Il permet entre autre d’utiliser une panoplie de raccourcis très pratiques.

Voici la liste des possibilités fourni par Toad :
image
  • Access Database File
  • Delimited Test
  • Excel File / Excel Instance
  • Fixe Field Spacing
  • HTML Table
  • Insert Statements
  • Merge Statements
  • SQL Loader
  • XML (plain) / XML (with XSL)

Aujourd'hui le MERGE Statement :

Préambule : Je veux mettre a jour mes données d’une table de l’environnement de production sur l’environnement de Test (sans truncate, drop ou autre)

Requête sur l’environnement de PROD

select * from NATIONALITE where rownum < 2

Requête générée par notre ami Toad :

  • Génération du mot clé MERGE
  • Utilisation d’une requete ‘Seclect’ fictive
  • Comparaison d’égalité grace a la clé primaire (PK, primary key)
    • Si Ok alors réalisation d’un UPDATE
    • Si NOk alors réalisation d’un INSERT
MERGE INTO NATIONALITE A USING
 (SELECT
  'YUG' as "NATIONALITE_ID",
  'YOUGOSLAVE' as "NATIONALITE_LIBELLE"
  FROM DUAL) B
ON (A.NATIONALITE_ID = B.NATIONALITE_ID)
WHEN NOT MATCHED THEN 
INSERT (
  NATIONALITE_ID, NATIONALITE_LIBELLE)
VALUES (
  B.NATIONALITE_ID, B.NATIONALITE_LIBELLE)
WHEN MATCHED THEN
UPDATE SET 
  A.NATIONALITE_LIBELLE = B.NATIONALITE_LIBELLE;

COMMIT;

C’est tout simple avec Toad, cela facilite grandement la tache sur ce genre d’opération. (Pour le coup, un truncate, et Insert Statement aurait bien également bien fonctionner)

mardi 8 janvier 2013

Optimisation Oracle Index et tables procédures (étape 2)


Il y a un petit moment j’ai mis un article concernant les requêtes permettant d’optimiser les tables et les index dans Oracle.

Ce script est très pratique, et je l’ai fait un peu évoluer afin de le rendre “automatique”. Je vous présente donc la monture v2 en en faisant une procédure. Cette dernière n’a rien de révolutionnaire, quelques curseurs pour parcourir les statements et les exécuter :

CREATE OR REPLACE PROCEDURE SU.REBUILD_INDEX (ma_table IN VARCHAR2)
IS
   CURSOR CURS_REBUILD
   IS
        -- rebuild  
    select 'ALTER INDEX ' || index_name || ' REBUILD ' as txt_sql from user_indexes  where UPPER(table_name) = UPPER(ma_table) and INDEX_TYPE!='LOB';
    R1         CURS_REBUILD%ROWTYPE;

   CURSOR CURS_STRUCT
   IS
        -- validate structure
    select 'ANALYZE INDEX ' || index_name || ' VALIDATE STRUCTURE ' as txt_sql from user_indexes  where UPPER(table_name) = UPPER(ma_table) and INDEX_TYPE!='LOB';
    R2         CURS_STRUCT%ROWTYPE;

   CURSOR CURS_STAT
   IS
        -- stat Analyse
    select 'Analyze Table ' || UPPER(ma_table) || ' Estimate Statistics ' as txt_sql from dual;
    R3         CURS_STAT%ROWTYPE;
      
BEGIN
    ---------rebuild  ----------------------------------------------------
   OPEN CURS_REBUILD;
       LOOP
          FETCH CURS_REBUILD INTO R1;        

            EXIT WHEN CURS_REBUILD%NOTFOUND;

            EXECUTE IMMEDIATE R1.txt_sql;
       END LOOP;
   CLOSE CURS_REBUILD;
   
   DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 1 ok : TABLE : ' || ma_table);
      
   ----------validate structure---------------------------------------------------
   OPEN CURS_STRUCT;
       LOOP
          FETCH CURS_STRUCT INTO R2;        

            EXIT WHEN CURS_STRUCT%NOTFOUND;

            EXECUTE IMMEDIATE R2.txt_sql;
       END LOOP;   
   CLOSE CURS_STRUCT;
   
   DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 2 ok : TABLE : ' || ma_table);
   
   -----------stat Analyse--------------------------------------------------
   OPEN CURS_STAT;
       LOOP
          FETCH CURS_STAT INTO R3;        

            EXIT WHEN CURS_STAT%NOTFOUND;

            EXECUTE IMMEDIATE R3.txt_sql;
       END LOOP;   
   CLOSE CURS_STAT;
   
   DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 3 ok : TABLE : ' || ma_table);

END;
/

mardi 18 décembre 2012

Parcours fichier commande Doc (cmd)


Un petit script qui peux servir pour des taches planifiées.(en ligne de commande)
  • Instruction FOR … DO
  • Instruction DIR
  • Instruction GOTO
Comment parcourir un dossier avec un tri pas date de modification (last modified)
@echo off   
CLS
REM On fait un dir pour avoir les fichiers du répertoire en tri par DATE '/O:-D'
REM /B indique pas de summary
FOR /F %%i IN ('dir /B /O:-D C:\MonDossier') DO (
    REM Effectue la copie du dernier fichier 
    XCOPY ….
    
    GOTO FINISH
)
:FINISH

J’espère que cela vous aidera a faire vos petits petit scripts Sourire

lundi 17 décembre 2012

Tree Size - Taille des arborescences

Un petit utilitaire sympathique pour connaitre rapidement la taille de chaque dossier de votre arborescence Windows :
Il vous permet de voir ou gagner de la place...

TreeSize :
http://www.jam-software.com/treesize_free/#
image

Dans notre exemple Google Chrome conserve les installations, du coup .... hop 1Go de libre.