HISTORIQUE VERSION 3.x : ------------------------ 31/08/2003 : 3.24 - Prise en charge du module de traduction automatique : La variable d'application __Language doit contenir le chemin vers un fichier qui correspond aux traductions de type clavier=keyboard. Les messages textes devant être traduits doivent être signalés par la sequence §§{clavier} 01/07/2003 : 3.2.3 - prise en compte au chargement de la dll ipsdll.dll des paramétres dans le fichier ipsdll.ini se trouvant dans le même répertoire que la dll : [debug] profiler=yes|no - RequestLive = True pour toutes les requêtes par SqlExec. Ceci a pour effet de rendre les requêtes plus rapide lorsqu'un résultat peut être obtenu directement sur la table source. - Utilisation d'optimisations propres à DBISAM version 3 au niveau de la session afin d'avoir de meilleurs performances au prix d'une utilisation plus importante de la mémoire. - Passage à la version 3.24 de DBISAM (au lieu de 3.21) - Passage à la version 7.02 de REPORT BUILDER (au lieu de 7.01) 06/04/2003 : - La procédure EditionEtatArchive() est maintenant une fonction qui retourne une chaîne de caractères de message en cas d'erreur. Ce message est maintenant le résultat de la fonction ipScript PrintReportToArchive(). - AceRBComp est maintenant en Euro par défaut pour le stockage et l'affichage des données. 01/04/2003 : - Le SessionDir est toujours dans le même dossier que la dll maintenant et prend en compte les chemins unc. - Nous supprimons les points des noms de database 26/03/2003 : 3.2.1 - Correction d'un bug l'utilisation conjointe des variables d'application locales (@xxx) et de la directive ChainToPage. Nous sauvegarde et rechargeons maintenant les variables d'application. - Nous ne mettons plus de propriétaire lors de la création d'un TEdition afin d'éviter les problèmes de "un objet edition est déjà présent ..." 25/03/2003 : 3.2.0 - Correction des procédures SendFile et SendStream - Changement des numéros de version afin d'être en phase entre les versions 2 et 3 de ipSCript (2.2.0 et 3.2.0) 31/10/2002 : 3.0.6 - dbISAM version 3.19 - Report builder 7 22/09/2002 : 3.0.5 - Ajout de la fonction FloatToSQL pour convertir un float au format float de DBISAM (avec un point pour la version 3 et une virgule pour la version 2) 13/09/2002 : - Ajout de la fonction CurrentPage pour avoir la page de script en cours de traitement. 12/09/2002 : - Correction de la gestion des transactions qui ne marchait pas 25/07/2002 : 3.0.4 - Ajout des procédures SqlStartTransaction, SqlCommit et SQLRollBack - Passage en DBISAM 3.12 au lieu de 3.10. - Ajout du programme PurgeSession.exe 06/07/2002 : - Ajout de la procédure SqlAssignDB qui permet d'associer une query à une base de données pour simplifier la formulation des requêtes. 04/07/2002 : - Ajout de la fonction SqlToStr 01/07/2002 : - Faire du dossier de la page de script executée le dossier par défaut lors de l'utilisation des fonctions IniRead et IniWrite. 10/06/2002 : 3.0.3 - procédure d'enregistrement des licences (plus de DLU). - Fonction IpscriptVersion qui retourne le numéro de version de ipscript. - Ajout de $$S:IpscriptVersion - DbIsam 3.10 et non plus 3.07 29/03/2002 : - Numéro de version de la DLL retourné au serveur web 19/03/2002 : 3.0.2 - Ajout de la fonction DateToSql pour convertir une date dans sa représentation date ansi sql yyyy-mm-dd 19/03/2002 : 3.0.1 - dbisam 3.07 et non plus 3.04 19/03/2002 : 3.0.0 - Passage à dbisam 3 - DLU fin juin 2002 - Pas de conversion automatique de table de 2.0 vers 3.0, il faudra utiliser dbsys.exe manuellement. ==== passage à la version 3 ========================================== 20/01/2002 : - Ajout de la fonction SqlError permettant de récupérer le dernier message d'erreur d'une procédure ou fonction SQL. 24/12/2001 : - DLU au 26/03/2002 - Implementation des sections critiques pour la production de PDF. 19/12/2001 : - SqlExec retourne un résultat cohérent sur les opérations de mise à jour de base (insert, update, delete, alter table, ...). 13/12/2001 : 2.08 - Ajout des fonction StartOfTheMonth et EndOfTheMonth 12/11/2001 : 2.07 - ajout de quelques variables d'environnement à la liste déjà existante 05/11/2001 : 2.06 - Utilisation de DBISAM version 2.11 - Divers améliorations sur GeSQL 31/05/2001 : 2.05 - Utilisation de DBISAM version 2.09 - Divers modification sur GeSQL 17/04/2001 : 2.04 - Passage de la DLU au 26/12/2001 - Correction sur PrintPDFReport afin de ne plus afficher de dialog lors de l'impression d'un état. - Création de la DLL IpReportDLL afin de permettre l'écriture de modules externes Delphi. 25/03/2001 : - Passage de la DLU au 26/04/2001 - Ajout de PrintPDFReport en multi-thread 28/02/2001 : 2.03 - Ajout de la fonction SendMailWithLogin afin d'envoyer un mail avec authentification sur le serveur SMTP. 22/02/2201 : - Correction de IPServer afin de gérer les session sur le lecteur où se trouve le programme ipserver.exe et non plus seulement le c: 01/02/2001 : 2.02 - Gestion multi-thread du PrintPDFReport avec session indépendante pour chaque groupe de requêtes de base de données 30/01/2001 : 2.01 - Ajout de la procedure PrintPDFReport - Les fonctions IniRead et IniWrite prenent le répertoire de la page ips comme répertoire par défaut. - Programme IPREPORT pour réaliser les rapports imprimables avec PrintPDFReport. 13/01/2001 : - Ajout de MOD pour le résultat de la division entière - Passage de la DLU au 26/03/2001 13/12/2000 : - Passage de la DLU au 26/02/2001 08/11/2000 : 2.00 - Passage de la DLU au 26/12/2000 - Changement du test de la DLU pour éviter les pb de format de date. - Changement d'un message mal orthographié en anglais. 31/10/2000 : - Ajout de la procédure SQLSaveToTable - Ajout des fonctions FindFileSize et FindDateTime 30/10/2000 : - Meilleur gestion du 'not found' si la page n'est pas trouvée. - Intégration de Indy pour l'envois de mail. 23/10/2000 : - Revision de la fonction DejaCompile - Correction du Content-type pour les redirections (location:) - Correction de InParms ne prenant pas en compte les variables sans parametre - Correction sur analyse des Parms venant de la requête isapi 22/10/2000 : - Utilisation de DBIsam 2.04 beta qui corrige le problème de TSession - Divers corrections sur la version isapi qui tourne enfin correctement - Transformation des / en \ dans PathTranslated suivant les serveurs http utilisés (sambar entre autres) - Fonction RmDir pour supprimer un répertoire. - DebugMessage ne fonctionne que pour Apache - Suppression des traces et messages de debug - Traduction des messages d'erreurs en anglais - Message d'erreur si la page demandée n'existe pas - Ne plus créer les .ipc des pages dont le .ips n'existe pas. - DLU au 30/11/2000 - On peut mettre des $$v:@xxx dans le source - Nous forcons la recompilation si changement de version du compilateur - Ajout de la variable système $$s:Version pour obtenir la version du compilateur IPScript. 07/10/2000 : - Ajout de la gestion des sessions DBISAM dans TIpDb.CreateDBIFile - Ajout de la gestion avec un TDBISAMDatabase sur TDBX avec la procédure DatabaseForThisPath ... c'est pas mieux ! 05/10/2000 : - IPServer: Bouton F5 pour rafraichir, onglets session, log et information. - IPServer: Temps d'expiration fixé à 21 mn. 02/10/2000 : - Changement du répertoire SessionDir pour c:\ipscript\session\ dans IPServer et ipscript.dll - On peut maintenant chainer vers des pages .htm et .html sans avoir un message "forbidden". 26/09/2000 : - Mise en place d'une session base de données par thread serveur http. - Attribution automatique de composant TDatabase à chaque table en fonction du chemin de la table. - Le fichier d'erreur ipscript.log est dans le répertoire du fichier EXE du serveur http. - Ajout d'un debugger en cas d'exception de l'executeur IPScript 25/09/2000 : - Ajout de la procédure DebugMessage pour Apache - Correction du ChainToPage sur mauvaise valorisation de ScriptSource - Correction SetVars si opérande à '' (idem sur SetParms et SetEnv) - Correction du DbField sur les champs ftGraphic (8 octets en trop) - Mise en phase de DbField et SQLField pour ftGraphic et ftCurrency - Ajout de ErrorLog sur DbAssignTable - Modification du Dbi.FileObject() - Passage de la DLU à fin octobre - Ajout de ErrorLog dans IDbi 24/09/2000 : - Première version utilisable de IPServer 15/09/2000 : - Fonction SessionDir - Stockage du .var dans le répertoire SessionDir 13/09/2000 : - Suppression du profiler - Ajout du temps d'exécution sous forme de commentaire dans le source 12/09/2000 : - Suppression de DbJPegImg et SQLJPegImg - Passage du gestionnaire de fichiers texte en "full object" 05/09/2000 : - Correction sur DbField avec les champs Date/Time - Correction du @ des variables d'application locales 27/08/2000 : - Suppression des messages de debug encore présent lors de l'execution. - IPStudio, ajout de la compilation, début de l'exécution. 26/08/2000 : Isapi beta 2 - ShareMem dans la version isapi 21/08/2000 : Isapi beta 1 - Première version beta isapi 11/08/2000 : - Fonctions BitmapToJPeg et SendStream. 06/08/2000 : - Reprogrammation de SendFile sur isapi 05/08/2000 : - Fonctions DeleteFile, RenameFile - Retourner un message si on demande un fichier different de .ips 02/08/2000 : - Prise en charge des noms de fichiers avec des / ou des \ 30/07/2000 : - Affectation de DecimalSeparator dans uVars.pas 29/07/2000 : - PageName en paramétre de DBXAssign et CreateDBIFile - Compilation conditionnelle pour isapi (pas ucgi si $ifdef isapi) - La compilation se fait si il y a changement de l'un des fichiers sources de la page (ou la page elle même), même si le .ipc reste postérieur aux fichiers sources. (on mémorise la date et l'heure de chaque source dans le .ipc et on compare lors de l'execution) 26/07/2000 : 1.08 - Suppression de l'optimisation de la compilation qui consistait à supprimer le code des procédures et fonctions jamais appelées du fait d'un bug non encore corrigé. 25/07/2000 : - Correction de la division qui retournait un résultat systèmatiquement entier si les deux opérandes étaient des nombres entiers. - Erreur d'initialisation si ChainToPage sur un formulaire en mode 'GET', la liste des paramètres passés derrière le nom de la page pouvait être fausse. 18/07/2000 : Version 1.07 - Correction d'un bug induit par une optimisation de vitesse ayant pour effet d'empecher toutes affectations aux variables tableau. 16/07/2000 : Version 1.06 - Compilation avec la version 2.03 de DBISAM 24/06/2000 : - Tester l'interruption d'un transfert lors d'un SendFile et mettre fin à la demande. 19/06/2000 : Version 1.05 - Ajout d'une compilation conditionnelle afin de pouvoir utiliser DBISAM v2.0 et ne plus supporter les transactions. - Fin de la conversion automatique des tables de la version 1.21 à 2.01 de DBISAM. - Le passage à la version 2 de DBISAM implique le test et éventuellement des changements sur toutes les expressions de filtre de table. Les filtres doivent maintenant être au format SQL et les champs dont le nom est un mot clé SQL être entourés par [ et ]. Les dates dans les filtres sont toujours au format MM/JJ/YYYY (format US) - DLU fin Août 2000. 13/06/2000 : - Début du passage à DBISAM V2.0 et Upgrade des tables automatique Reste le problème que l'on ne peut plus mettre le chemin complet dans TableName lorsqu'il y a un composant Database sur DatabaseName. 13/05/2000 : - Ajout de la fonction Random() permettant de générer des nombres pseudo-aléatoires. - Ajout des constantes file attributes : faReadOnly, faHidden, faSysFile, faVolumeID, faDirectory, faArchive, faAnyFile. - Ajout de FindFirst, FindNext, FindClose et FindFileName. 09/05/2000 : Version 1.04 - Revision de IPStudio afin qu'il soit en phase avec IPS. - Ajout de la recherche dans IPStudio - Nouvelle fonction Exec() permettant le lancement de programme sur le serveur (WinExec). - On peut de nouveau faire F9 (compiler et executer) dans IPStudio. 02/05/2000 : - On peut mettre des variables d'application locales (commençant par @) et non plus seulement des variables glocales, dans le source html avec la directive $$v:@nomdelavariable. 29/04/2000 : Version 1.03 - Correction sur DeleteVars qui ne permettait pas l'usage de variable locale (commençant par le caractère @) - IniWrite ne permettait pas de fonctionner avec une section vide sous Windows NT, nous remplaçons la section vide par "-". - Ajout de la date et de l'heure du compileur dans les fichiers compiler (.ipc) afin de compiler si changement de version du compilateur. - Optimisation au niveau Empiler/Depiler et sur le stockage des variables d'execution. - Par défaut, nous sommes dans le répertoire de la page ipscript chargée. - Remplacement des étiquettes de Jump, Call, etc. par l'adresse fixe après compilation pour optimisation des branchements. 26/04/2000 : Version 1.02 - Fonction SendMail pour envoyer des mail. 25/04/2000 : Version 1.01 - Plus de codage des caractères < #32 dans le code html - Ajout du "Var" en plus du "Define" - Le ";" avant un "END" n'est plus obligatoire. 24/04/2000 : Version 1.00 - Ajout de AssignFile, Reset, ReWrite, ReadLn, WriteLn, Write, EoF, CloseFile, FreeFile pour la gestion des fichiers textes. - DLU fin juin - Release 1.00 23/04/2000 : - J'ai enlevé la date limite pour le cookie de session car problème si le client n'a pas la même heure que le serveur. 17/04/2000 : - Gestion des domaines et dates d'expiration des cookies. Modification des paramètres d'appels de SetCookie(). - Gestion des sessions avec identifiant en cookie permettant un support des navigateurs derrières un proxi (une même adresse IP pour plusieurs navigateurs). - DLU fin mai 05/04/2000 : - Remplacement FileExists par la Table.Exists sur le test d'existance en ouverture de table. 22/03/2000 : - Fonction FileExists - DLU fin avril 08/03/2000 : - Activation du profiler si profiler=yes est dans la section debug de ips.ini [debug] Profiler=Yes - Optimisation au niveau compilation pour une execution plus rapide des pages avec du html en introduisant dans le code compilé une notion de "section html". - Fonction SendFile(entête, fichier) pour retourner au navigateur un fichier. 07/03/2000 : - Si "PATH_TRANSLATED" n'est pas valorisé, on utilise ParamStr(1) afin de supporter le serveur http Sambar Server. 24/02/2000 : - Première implementation du SQL avec SqlAssign, SqlFree, SqlQuery, SqlExec, SqlFirst, SqlLast, SqlNext, SqlPrior, SqlRecordCount, SqlField et SqlJPegImg 23/02/2000 : - Isolement de la propriété Table de l'objet TDBX 21/02/2000 : - Correction d'un bug masquant une erreur de compilation si une autre erreur survenait après la première (flagrant sur DbAssignTable si l'identificateur de table n'est pas defini). 14/02/2000 : - Grosse optimisation à l'execution, gains de l'ordre 80% - Revision du TimeOut avec GetCurrentTime toute les 5000 instructions 13/02/2000 : - Procédure Inc et Dec 11/02/2000 : - Ajout des procédures DbInMemory, DbStartTransaction, DbCommit, DbRollBack - Fonction Abs. 09/02/2000 : - Possibilité d'utiliser les balises <% et %> en plus des balises - Correction d'un bug de compilation qui empêchait de repasser en mode html juste après le "Begin" d'une procédure ou fonction. 02/02/2000 : - Correction permettant d'utiliser les fonctions utilisateurs comme des procédures. - Editeur de IPStudio avec auto-indentation - Coloration syntaxique dans IPStudio - Suppression du code assembleur inutile (fonction et procédure jamais appelées) - On peut maintenant utiliser : Define Max = 30; pour definir des constantes - Gestion des listes avec la librairie Strings.lib - On ne pouvait pas changer l'extention d'une fichier lors de sa sauvegarde avec IPStudio, il ajoutait toujours ".ips". Corrigé. - Les fichiers inclus ne pouvaient pas commencer avec un commentaire. Corrigé. 01/02/2000 : - Fonction SessionID - Gestion des cas d'erreur sur les traitements de base de données 27/01/2000 : - Ajout d'un préfix sur les labels afin de mieux les distinguer lors de la constitution de la liste des labels avant execution et passage des labels sur 10 caractères préfixés par la constante LabelPrefix. 26/01/2000 : - DownTo dans les FOR-DO - DLU au 26/02/2000 20/01/2000 : - Ajout des fonction IsInteger, IsFloat et IsDate - Fin de processus en cas d'erreur d'écriture du résultat 19/01/2000 : - La modification d'un fichier INCLUDE force la recompilation d'une page. - Fonction FormatFloat - Fonction Trim 18/01/2000 : - Ajout de IniWrite et IniRead - Ajout de $$s:Page, $$s:Date et $$s:Time 17/01/2000 : - Test d'existence de la page avant traitement à cause du ChainToPage - Erreur de nombre de paramètres sur ParmsCount 16/01/2000 : - Support des commentaires // - Correction du SetCookie - Parametres variables sur fonctions utilisées comme des procédures - DbField d'un champs ftBoolean retourne '0' ou '1' - DbToTable, extension des attributs de champs dans le dbi pour les tables 15/01/2000 : - Ajout de la structure CASE-OF - IPStudio: correction du Noname, ajout du message d'erreur de compilation sur la barre d'état. - procédure Delete - Fonction DayOfWeek, FileAge, Date, Time - Nous pouvons maintenant redéfinir les procédures et fonctions standards, même sous forme de variables. 14/01/2000 : - Revision complète de l'assembleur avec "tokens" numériques pour optimisation du parsing d'execution. - Nous permettons d'utiliser les fonctions comme des procédures - Support des cookies 11/01/2000 : - Suppression de la gestion du separateur décimal pour ne plus prendre en compte que le point. - Recompilation systèmatique en cas de changement de version du compilateur - Procédure HttpHeader - Prise en compte des fichier Include pour le calcul de la position de l'erreur de compilation dans le source. - Affichage dans le navigateur de la ligne en erreur de compilation 10/01/2000 : - Ajout des lignes "buffered" pour gestion des cookies et type de contenu. 09/01/2000 : - Modifications afin de supporter l'éditeur IPStudio 08/01/2000 : - Fonctions Now, DateToStr, TimeToStr, StrToDate, StrToTime, FormatDateTime 05/01/2000 : - On peut maintenant passer des parametres à la procédure ChainToPage. - Correction sur le moins unaire dont le traitement etait mal placé dans les conditions. - Traitement du CR (#13) dans HtmlEncode(). - Traitement des dates et heures des bases de données maintenant sous format numéric (et non plus en string pré-formatée) 02/01/2000 : - Le fichier DBI est maintenant créé automatiquement si non présent. - Ne plus compiler les sources n'ayant pas été modifiées depuis la dernière compilation. Attention, les fichiers INCLUDE ne sont pas pris en compte dans ce test de compilation. - Fonction HtmlEncode() pour transformer une chaîne en html. 30/12/1999 : - Correction des procédures SetParms, DeleteParms, SetCookie et DeleteCookie. - Fonctions UrlEncode() et UrlDecode() - Correction du SetTimeOut() - Ajout d'un Cancel en cas d'échec du DbPost et gestion sans exception pour le DbPost et DbDelete. - On peut maintenant mettre $$v:XXX pour ajouter une variable d'application dans le code html. De même, on a $$e:XXX, $$p:XXX et $$c:XXX. - Fonction DbJPegImg() pour afficher les images d'une base de données. - Debut de UMail 26/12/1999 : - Fonction Pos, MkDir, ChDir, Getdir, UpperCase. - Correction sur le DBIAssign qui ne cherchait pas .dbi au bon endroit. - Dans Include, s'il n'y à pas de \ alors on force le fichier dans le répertoire de la page IPS. - On peut maintenant avoir à la suite sans problème. 25/12/1999 : - Les fichier .DBI doivent maintenant être dans le répertoire de la page IPS - DbSetKey, DbGotoKey, DbGotoNearest 24/12/1999 : - SetTimeOut(TempsMaxEnSeconde) - DbInsert, DbEdit, DbDelete, DbPost, DbCancel, DbSetField - Le projet est porte maintenant le nom IPS - Le fichier compilé porte l'extension .ipc et les sources .ips - Première version du site web 22/12/1999 : - Halt 21/12/1999 : - DbRecordCount() - DbFilter() - Mise en place d'un TimeOut de 1 minute sur l'execution d'un script - Correction du point-virgule devant être doublé sur un Repeat-Until 20/12/1999 : - Codage de l'unité UDBI.PAS pourl'interface avec DBIsam - DbAssignFile() et DbFreeTable() - DbOpen() et DbClose() - DbFirst() et DbLast() - DbField - DbNext() et DbPrior() 16/12/1999 : - Fonctions Copy(), Length(), Trunc(), Round() 14/12/1999 : - Modification de la lecture du fichier des variables d'application afin d'utiliser FileAge() fonctionnant mieux sous NT. - Correction d'un bug empêchant le bloc d'initialisation d'être facultatif. - Revision des routines arytmétiques sur les réels pour gestion du séparateur décimal avec un point et non une virgule. - Correction d'un ug empechant l'usage de parenthèses () devant * ou / dans une expression. 09/12/1999 : - Correction sur test de BlockType dans les sous-blocs Begin-End. - Ajout de la directive de compilation debug et de la procédure du même nom. - Correction de la détection de fin de chaîne de caractères qui bouclait si pas de fin de chaîne sur une ligne. 08/12/1999 : (54272) - Ne plus mettre d'identificateur après le mot SCRIPT. - Le bloc d'initialisation est maintenant facultatif. - Ajout de l'unité UCGI avec traitements des paramètres, variables d'environnement, cookies et variables d'application. - Ajout de ChainToPage(). 07/12/1999 : - Ne plus demander le mot PROGRAM suivi d'un identificateur. - Ajout des SCRIPTs tels que des procédures mais non appelables. - Révision complète du mode d'execution pour une prise en compte du bloc d'intialisation et des blocs scriptes. 05/12/1999 : - Ajout de la fonction Odd(). - Ajout de l'opérateur assembleur MOD pour le modulo. - Traitement des caractères spéciaux dans les chaînes - Ajout du # pour avoir des caractères à partir du code ASCII - Ajout de la fonction Concat() pour concatenation de chaînes - Traitement des variables tableau à n dimensions - On peut maintenant créer des constantes chaînes avec des # sans pour autant mettre de + ou de Concat(). Par exemple: 'TOTO'#32'ET'#32'TITI' - Les fonctions et procédures sont maintenant réentrantes (recursives) - Ajout des balises et pour délimiter la zone du script. - Traitement du HTML en dehors de la zone de script. 03/12/1999 : - Ajout de l'instruction SWAP pour correction des appels aux procédures et fonctions. - Utilisation des paquets d'executions. 02/12/1999 : - Implementation en unité, integration dans une logique web - Fusion avec le module d'execution, mise en phase de l'assembleur - Prise en charge du parametre Apache PATH_TRANSLATED 25/11/1999 : - Correction d'un problème sur les ; avec If-Then-Else - Ajout de la procédure Echo() permettant un echo vers la sortie standard. - Correction sur le traitement d'extraction des strings ne permettant pas d'avoir d'espace au début d'une constante string. - La compilation est maintenant une fonction - Traitement des erreurs de compilation - Nouveau traitement des points-virgules. - Support des Boolean dans les expressions 23/11/1999 : - Correction sur appel de procedure avec plus de un parametre - Dépiler les parametres en début de procédure ou fonction - Empiler les parametres à chaque appel d'une procédure ou fonction - Contrôle du nombre de paramètres lors de l'appel d'une procédure ou fonction - Faire le controle de structure For-do - Definir une directive Include 21/11/1999 : - Affichage des avertissements sur variables, procédures et fonctions definies et non utilisées. - Affectation de variable - Traitement des conditions - Traitement des commentaires { ... } 20/11/1999 : - Ajout de "Define" pour définir des variables - Les "instructions" gerent les appels aux procédures - Gestion de la liste des identificateurs et tests associées. 18/11/1999 : Premier jet - Program, Procedure et Function, Begin et End, le début de If Then Else - While-do - Repeat-Until