michelc Blog

Just <strong>another</strong> WordPress.com weblog

Archives de septembre 2006

Les “pseudo-types” de données de QC

avec un commentaire

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

Rédigé par michel

27 septembre 2006 à 5:42

Publié dans QC, sql

Ecrire du code SQL portable

sans commentaires

Quelques sites de référence pour ne plus coder du SQL tête baissée et prendre les bons réflexes de la portabilité :

Rédigé par michel

27 septembre 2006 à 1:24

Publié dans sql

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

sans commentaires

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.

Rédigé par michel

26 septembre 2006 à 6:00

Publié dans QC

Trucs à faire

sans commentaires

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 (pour PI),
  • 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.

Ayé! quasiment tout fait.

Rédigé par michel

20 septembre 2006 à 10:03

Publié dans PI, QC