.comment-link {margin-left:.6em;}

zerosept

mercredi, septembre 27, 2006

Les "pseudo-types" de données de QC

QC étant destiné à être multi base de données, il est nécessaire de prendre un certain nombre de précautions pour tout ce qui concerne SQL, qu'il s'agisse des requêtes ou des types de données.

Pour les requêtes on verra plus tard, pour les types de données, c'est ici.

Pour faciliter le développement multi base de données voire simplifier la migration d'une base de données à l'autre, QC ne gère qu'un sous-ensemble de types de données, qui fonctionnent de façon plus ou moins identique dans la plupart des bases de données.

La liste des "pseudo-types" de données reconnues par QC est la suivante :

  • AUTOINCREMENT
  • BOOLEAN
  • SMALLINT
  • INT
  • BIGINT
  • SINGLE
  • DOUBLE
  • CURRENCY
  • TEXT(2000)
  • TEXT
  • MEMO
  • DATETIME
  • DATE
  • TIME
  • BINDATA

Remarques :

  • Pour le type de données TEXT, il faut impérativement définir une longueur comprise entre 1 et 255 ou strictement égale à 2000.
  • Il est conseillé d'éviter d'utiliser des données de types CURRENCY (n'existe réellement que sous Access et Sql Server) et BINDATA.
  • Le type DATE et le type TIME ne doivent pas être utilisés. Ils sont uniquement destinés à gérer des tables déjà existantes pour lesquelles il serait impossible de modifier le type de données.

Transposition pour une base de données Access

  • AUTOINCREMENT : INT NOT NULL IDENTITY (1, 1)
  • BOOLEAN : BIT
  • SMALLINT : SMALLINT
  • INT : INTEGER
  • BIGINT : LONG
  • SINGLE : REAL
  • DOUBLE : DOUBLE PRECISION
  • CURRENCY : MONEY
  • TEXT(2000) : MEMO
  • TEXT : TEXT
  • MEMO : MEMO
  • DATETIME : DATETIME
  • DATE : DATE
  • TIME : TIME
  • BINDATA : IMAGE

Transposition pour une base de données Sql Server

  • AUTOINCREMENT : INT NOT NULL IDENTITY (1, 1)
  • BOOLEAN : BIT
  • SMALLINT : SMALLINT
  • INT : INTEGER
  • BIGINT : BIGINT
  • SINGLE : REAL
  • DOUBLE : DOUBLE PRECISION
  • CURRENCY : MONEY
  • TEXT(2000) : NVARCHAR(2000)
  • TEXT : NVARCHAR
  • MEMO : NTEXT
  • DATETIME : DATETIME
  • DATE : DATETIME
  • TIME : DATETIME
  • BINDATA : IMAGE

Transposition pour une base de données Oracle

  • AUTOINCREMENT : INT NOT NULL
  • BOOLEAN : NUMBER(1,0)
  • SMALLINT : NUMBER(5,0)
  • INT : NUMBER(10,0)
  • BIGINT : NUMBER(20,0)
  • SINGLE : FLOAT(24)
  • DOUBLE : FLOAT(48)
  • CURRENCY : NUMBER(19,1)
  • TEXT(2000) : VARCHAR2(2000)
  • TEXT : VARCHAR2
  • MEMO : CLOB
  • DATETIME : DATE
  • DATE : DATE
  • TIME : DATE
  • BINDATA : BLOB

Dans le cas du pseudo-type AUTOINCREMENT, l'incrémentation automatique est simulée à l'aide :

  • d'une séquence SEQ_NomTable,
  • d'un trigger before insert TRG_BI_NomTable

Transposition pour une base de données PostgreSQL

  • AUTOINCREMENT : BIGSERIAL
  • BOOLEAN : NUMERIC(1)
  • SMALLINT : INT2
  • INT : INT4
  • BIGINT : INT8
  • SINGLE : FLOAT4
  • DOUBLE : FLOAT8
  • CURRENCY : NUMERIC(16,4)
  • TEXT(2000) : VARCHAR(2000)
  • TEXT : VARCHAR
  • MEMO : TEXT
  • DATETIME : TIMESTAMP WITHOUT TIME ZONE
  • DATE : DATE
  • TIME : TIME
  • BINDATA : BYTEA

Transposition pour une base de données MySQL

  • AUTOINCREMENT : INT AUTO_INCREMENT
  • BOOLEAN : TINYINT(1)
  • SMALLINT : SMALLINT
  • INT : INTEGER
  • BIGINT : BIGINT
  • SINGLE : FLOAT
  • DOUBLE : DOUBLE PRECISION
  • CURRENCY : DECIMAL(16,4)
  • TEXT(2000) : TEXT
  • TEXT : VARCHAR
  • MEMO : MEDIUMTEXT
  • DATETIME : DATETIME
  • DATE : DATE
  • TIME : TIME
  • BINDATA : MEDIUMBLOB

mardi, septembre 26, 2006

Déployer un projet QC sur un serveur ASP.NET

Créer le fichier QC_Deploy.bat sur C:\ ou D:\ selon que l'on travaille avec C:\Portals ou D:\Portals et y insérer les lignes suivantes (en modifiant D:\ en C:\ si nécessaire) :

IF "%1" == "" GOTO Finito

REM ---------- Recopie le répertoire principal

XCOPY D:\Portals\%1\*.* D:\Portals\%1_ftp\ /S /Y /EXCLUDE:D:\QC_deploy.txt
XCOPY D:\Portals\%1\*.css D:\Portals\%1_ftp\ /S /Y

:Finito

Créer également le fichier QC_Deploy.txt sur C:\ ou D:\ pour indiquer les fichiers à exclure du déploiement :

\Engine\bin
\Engine\refs
\Classic\bin
\Framework
\BDHelper
.pdb
.cs
.resx
.csproj
.sln
.webinfo
.bak
.sql
.zip
.rar

Dans le cas où il s'agit de déployer une solution basée sur le framework QC, il est nécessaire d'ajouter le sous-répertoire bin des projets contenus dans la solution après la ligne "\Classic\bin".

...
\Classic\bin
\Mon_Projet_Numero_1\bin
\Mon_Projet_Numero_2\bin
\Framework
...

Passer ensuite sous l'invite de commandes, sur la racine C:\ ou D:\, et taper la commande QC_Deploy qc puis appuyer sur Entrée. Cela crée un répertoire X:\Portals\qc_ftp qui ne contiend que les fichiers à déployer sans aucun fichier source ou autres fichiers inutiles. Il suffit alors de transférer (généralement par ftp) ces fichiers sur le serveur de production.

mercredi, septembre 20, 2006

Trucs à faire

Pour ne pas oublier :

  • OK : Auto-login quand on est sur localhost,
  • Tâche planifiée pour sauvegarder la base de donnée (si .mdb) lorsqu'elle a été modifiée,
  • OK : Gérer l'authentification par défaut sur smtp.gmail.com,
  • OK : Problème sur le module Feedback quand on fait saisir un n° de téléphone.

Et aussi :

  • OK : {@user.dns} et {@user.ip} pas gérés correctement dans _feedback.txt.
  • OK : Générer _dumpdb_xxxxx.sql dans le sous-répertoire data.

mercredi, mai 10, 2006

Debug formulaires personnalisés

Il est possible d'ajouter un champ caché pour mettre au point le formulaire personnalisé : <input type="hidden" name="_debug" value="true" />

A partir du moment où ce champ est présent dans le formulaire (et quelle que soit sa valaur), le destinataire, le sujet et contenu du mél sont affichés ainsi que le message d'erreur éventuel.

mercredi, mai 03, 2006

Boite de dialogue dlgFiles

Modification des fichiers dlgFiles.aspx.cs et popupDialog.js pour rendre l'utilisation de la boite de dialogue d'exploration de fichiers un peu plus flexible.

  • le répertoire par défaut est revenu à /data/,
  • le téléchargement de fichiers se fait dans le répertoire en cours (et plus uniquement dans /data/),
  • il est désormais possible de configurer le répertoire initial dans la fonction InputHelper.attachInputFile().
  • En fait, pour aller encore plus loin, il faudrait pouvoir paramétrer s'il est possible de télécharger des fichiers, leur taille, leur type...

vendredi, avril 14, 2006

Validité des boites Htmltext

Avant son enregistrement en base de données, le code HTML renvoyé par l'éditeur wysiwyg subi les vérifications suivantes :

  • remplacement de l'apostrophe penchée de Word «’» par une apostrophe simple «'»,
  • remplacement des trois points de suspension de Word «…» par trois vrais points «...»,
  • si nécessaire, ajout de la balise fermante «/li» aux listes «ul» et «ol» étant donné que IE ne le fait pas.

mercredi, avril 12, 2006

Configuration AdSense

Amélioration de la partie configuration des AdSense dans le cas où on sélectionne une présentation correspondant à des publicités de type "Link Unit". Lorsque c'est le cas et que le type de publicité n'a pas été défini à "4 Links unit" ou "5 Links unit", il est automatiquement réinitialisé à "4 Links unit".

De la même façon, si la présentation sélectionnée ne correspond pas des "Link Unit" alors que le type est défini à "4 Links unit" ou "5 Links unit", le type est réinitialisé à "Défaut".