BOB 50 SQL - migrer

publicité
BOB 50 SQL :
Migrer à partir de BDE
27/08/2009
Agenda
•
•
•
•
•
•
•
•
•
Advantage Database Server : philosophie
Passer de BDE à BOB 50 SQL
Changements et précautions à prendre
BOB-link
BOB-script
BOB-dev
BOB-ole
Outils divers
Conclusions et séances de questions
2
Sybase Advantage Database Server : philosophie
•
Commercialisé sous l’acronyme « SQL » pour faire référence à une notion
technique souvent plus proche et connue de nos utilisateurs qu’ADS ou
encore Advantage Database Server
•
Avantages par rapport aux solutions concurrentes type SQL Server :
–
–
–
–
–
–
•
Faible utilisation en mémoire (convient aussi bien pour un serveur qu’un simple
ordinateur)
Administration réduite au strict minimum (les paramètres s’ajustent automatiquement
en cas de dépassement)
Installation très simple, maintenance quasi inexistante
Taille du processus BOB.EXE en mémoire limitée
Gestion des droits via les permissions NTFS de Windows
Commercialisé par Sybase, société essentiellement spécialisée dans les SGBDR
Avantages pour BOB 50 :
–
–
–
Advantage Database Server déjà utilisé conjointement avec BOB Software depuis
plusieurs années dans plus de 150 sociétés de type « Moyenne entreprise »
Technologie déjà maîtrisée. Nous utilisons cependant désormais la version 9 pour
faire bénéficier nos utilisateurs des dernières nouveautés
Base de données plus robuste pouvant gérer des dossiers de taille importante tout en
conférant aux utilisateurs un grand confort d’utilisation (filtres, tris, reporting,…)
3
Conversions des installations BDE  BOB 50 SQL
•
Uniquement avec le BOB Migration Kit, sur une machine avec le
BDE installé et si possible le serveur de données (données en
local).
•
Bientôt dans le BOB Migration Kit (v2.1+):
– Conversion des données Fista de BDE vers SQL
•
Pour la conversion BOB 50 BDE vers BOB 50 SQL, placer
l’installation BOB 50 BDE dans la colonne « BOB Software » du
BOB Migration Kit.
•
Les nouvelles installations BOB 50 SQL réseau doivent
fonctionner en mode « NetSetup » ou en Terminal Server. Aucune
garantie Sage pour les autres modes de fonctionnement.
4
Changements et précautions à prendre
•
Structure dans les dossiers BOB 50 :
–
–
–
–
•
Plus de code dossier en préfixe des noms de fichiers
Les préfixes deviennent AC_ (compta, fichiers globaux), IV_ (facturation), FA_
(immobilisés), FI_ (fiscal) et BK_ (banque)
Tous les fichiers « opérationnels » sont dans un même répertoire
Le sous-répertoire BAK contient les backups des fichiers avant restructuration
Existence à part entière de NULL :
–
Avec la version SQL, NULL a une existence propre au niveau des filtres
•
Ex. : (TCURRENCY<>’BEF’) devient (TCURRENCY <> ‘BEF’) OR (TCURRENCY IS NULL)
•
Ne plus utiliser les guillemets dans les expressions « Filter ». Toujours
des apostrophes.
•
Utiliser au maximum des crochets ( [ et ] ) autour des noms de champs et
des noms de tables afin que le moteur SQL ne les interprète comme des
mots réservés dans la syntaxe SQL ADS.
Ex.: SELECT [LICENCES].[L_ID] FROM [LICENCES]
5
BOB-link
•
Fichiers BOBLINK.EXE et BOBLINKADSADT.EXE
•
BOBLINK.EXE prend comme fichiers d’entrée les fichiers TXT, DB
et DBF
– Remarque importante : Il est nécessaire que le BDE soit installé
•
BOBLINKADSADT.EXE sert spécifiquement à importer des
fichiers ADT (format Advantage Database Server)
– Pas de BDE nécessaire
•
Répertoire LINK en SQL déplacé dans le sous-répertoire LINK\xx
ou « xx » est le code dossier
– Dans le BOB.INI, LINK=C:\B50ADSDEMO\LINK
6
BOB-script
•
Précautions à prendre :
– Changer les noms et chemins des fichiers là où ils sont « hard-codés »
avec l’ancienne structure/notation sans utiliser « BOBOpen »
– Vérifier les filtres (existence du NULL et apostrophes uniquement)
•
Optimiser le code :
– Utiliser les TBOBQuery pour exécuter une requête SQL de type Select,
Insert, Delete, Update ou autre sur les tables ADT.
– Eviter le parcours inutile des tables avec « Next » et remplacer par des
WHERE dans les requêtes.
– Pour les autres types de base de données (SQL Server, Oracle,…), les
objets ADO sont disponibles
•
Optimiser l’exécution :
– Ajouter des indexes sur vos champs personnalisés via « Configuration
générale » (en RUNMODE=BETA actuellement)
7
BOB-script
•
TBOBQuery :
Propriétés :
Sql:
RecordCount :
Bof :
Eof :
RowsAffected :
string
integer
boolean
boolean
integer
Définition de la requête
Nombre d’enregistrements
Est en début de table
Est en fin de table
Nombre d’enregistrements modifiés
Méthodes :
procedure Open;
Ouvre la requête dans le recordset
procedure Close;
Ferme le recordset
procedure ExecSql;
Exécute la requête
procedure First;
Aller du début du recordset
procedure Last;
Aller à la fin du recordset
procedure Prior;
Aller à l’enregistrement précédent
procedure Next;
Aller à l’enregistrement suivant
function GetFieldValue(AFieldName: string): variant;
8
BOB-script
•
Exemple 1 (Pascal) :
myquery := tbobquery.create;
myquery.sql := 'select * from AC_COMPAN';
myquery.open;
ShowMessage(inttostr(myquery.recordcount));
myquery.last;
showmessage(myquery.getfieldvalue('CID'));
myquery.free;
myquery := nil;
•
Exemple 2 (Pascal) :
myquery := tbobquery.create;
myquery.sql := 'update AC_COMPAN set CADDRESS2 = ''AAA'' where CLANG = ''F''';
myquery.execsql;
showmessage(inttostr(myquery.RowsAffected));
myquery.free;
Myquery := nil;
9
BOB-dev
•
•
Pas de changements
Vérifier les chemins et noms de fichiers « hard-codés »
–
•
Attention aux DatabaseName dans les BOBDataSet
Faire attention aux filtres
10
BOB-OLE
Faire attention aux filtres
• Certaines fonctions ont été optimisées pour la version SQL
–
•
•
AccountBalance, CompanyAccountBalance, CostBalance
Des fonctions seront peut-être plus lentes, d’autres plus rapides par rapport à
BDE
Vérifier les chemins et noms de fichiers « hard-codés »
–
Attention aux DatabaseName dans les BOBDataSet
A venir : fonction avec chaîne SQL en argument et qui renvoie une valeur
11
Outils divers
•
•
•
•
DbViewer
BOB Admin – Sybase Management
Installation Diagnostic
Advantage Data Architect et autres
– http://www.sage.be/tools/sybase.zip
•
Autres outils (attention support non fourni par Sage) :
–
–
–
–
–
Advantage
Advantage
Advantage
Advantage
Advantage
.NET Data Provider
OLE DB Provider
ODBC Driver
Crystal Reports Driver
PHP Driver
12
Conclusions et questions
•
•
•
•
•
Vérifier les noms de fichiers et chemins
Utiliser les indexes sur les tables là où c’est nécessaire
Faire attention au NULL / chaînes vides dans les filtres et requêtes
Utiliser les requêtes SQL là où c’est possible pour améliorer les performances
Tester vos requêtes au préalable avec Advantage Data Architect
Avancé
• LOGSQL=YES dans [OPTIONS]  LogSQL.htm (à désactiver dès que
possible)
• AUTOADSINI=NO dans [OPTIONS] en cas de problèmes avec la création
automatique de ADS.INI
A venir dans BOB 50 SQL 2.1 :
BOB Business Views et BOB Business Reports
Vos questions et commentaires
13
Téléchargement