Programming

Interfaces en C++ et héritage multiple

L'héritage multiple des interfaces (qui sont les classes purement abstraites tout simplement) ne pose pas des problèmes jusqu'à moment quand vous décidez utiliser l’implémentation d'une interface dans les autres classes.

Imaginez que vous avez 2 interfaces dont une implémentation sera ré-utilisée dans les autres classes

Table temporaire vs table variable

Dans cette article nous allons voir les différences entre les tables temporaires marquées par dièse (#Temp) et le variables de type table (@Temp).

Emplacement mémoire / disque

Les tables temporaires allouent l'espace dans la base de données (BDD) temporaire (tempdb) ainsi que variables peut utiliser la BDD temporaire ainsi que la mémoire vive.

Normalement, la variable commence allouer l’espace de disque depuis qu'elle dépasse la taille d'un extente qui égal à 8 pages (soit 64 Ko).

Indexer les colonnes de type "bit"

Évidemment, l’indexation d'une seule colonne de type "bit" ne servira à rien parce que le nombre des valeurs uniques ne dépassera jamais "2" et donc la sélectivité sera mauvaise. Par contre, si une table contient plusieurs colonnes "bit" l'index vous permettra gagner de la performance.

"Test drive" FreePascal / Lazarus

Après avoir développé plusieurs projets depuis Delphi 2 et jusqu'au Delphi 2009, il m'est manquée la portabilité du code (surtout Win32/64) pendant les dernières années. Alors j'ai fait le test rapide afin d'estimer l'environnement FreePascal/Lazarus.

L'application de test a 3 composants : un exécutable console (EXE) et 2 bibliothèques à liaison dynamiques (DLL) implémentés comme "plug-in". L'application fait le traitement assez simple d'un fichier XML unicode (utf-8).

ADO, Delphi et SQL Server Compact

Comment se connecter et interroger MS SQL Server Compact Edition par ADO et depuis Delphi ?

Je prends Delphi 2009 pour cette exemple.

Créez la base de donnée SQL Server Compact. Pour manipuler la base SQL Server Compact de manière visuel vous pouvez prendre l'outil SQL Server Management Studio fourni avec l'édition SQL Server Express gratuite aussi.

Un "quine" en SQL (self-reproducing SQL)

Un quine en informatique est un programme (une sorte de métaprogramme) dont la sortie et le code source sont identiques. À titre de défi ou d'amusement, certains programmeurs essaient d'écrire le plus court quine dans un langage donné.

Voici mes exemples en Transact SQL et ANSI SQL (la plus petite est dans exemple 5)

Envoyer les courriels depuis un trigger

L'objectif de cette exemple est d'être averti si les modifications ont été effectuées dans votre base de données.

En fait, l’implémentation d’envoi des courriels dans le trigger peut être un peu risqué pour la performance malgré le mode asynchrone d'envoi. Donc pour l’implémentation "classique" et 100% fiable utiliser plutôt le trigger comme "writer" pour remplir la queue (ex. la table des messages) et le processus séparé comme "reader" qui traite cette queue (ex. procédure stockée démarré par SQL Agent).

La somme des membres calculés vs le calcul des sommes

C'est le problème récurrent. Supposons-nous qu'il y a 2 mesures stockées dans notre cube : M1 et M2. Il nous faut créer un membre calculé M3 au niveau de session

CREATE MEMBER CURRENTCUBE.[Measures].[M3 = (M1 + M2) / M2] AS
([Measures].[M1] + [Measures].[M2]) / [Measures].[M2];

Pages

Subscribe to RSS - Programming