Mantis

Incompatibilité: PluginManager & Import Export avec MS SQL

Posted by thomas.carter 
Incompatibilité: PluginManager & Import Export avec MS SQL
July 10, 2008 12:12PM
Bonjour,

Le pluginmanager & import/export ne fonctionnent pas dans le contexte suivant:
mantis:Mantis 1.1.0
base de données: MS SQL 2000

Mantis étant prévu nativement pour fonctionner avec MS SQL (ok, MySQL est le contexte standard), cela peut être bien d'adapter les plugins aussi.

Pour le pluginmanager, j'ai modifié le source pour qu'il s'installe sur MS SQL server 2000. Par contre je n'ai pas assuré la compatibilité avec MySQL. Il sera possible de comparer les fichiers pour trouver les différences et l'adapter pour fonctionner sous MySQl et MS SQL. Vous pouvez trouver la version adapté à MS SQl ici. (dispo 30 jours sur dl.free.fr)

Pour le plugin impot/export, celui ci refuse de s'installer. Je n'ai pas trouvé/cherché de solution. Il y a des erreurs SQL visiblement (cela doit êtres du à des problèmes similaires à ceux que j'ai corrigés dans le pluginmanager)
Cordialement,
Thomas
Re: Incompatibilité: PluginManager & Import Export avec MS SQL
July 10, 2008 12:21PM
Je vais regardé, le problème avec MSSQL c'est qu'il est obscur pour moi, je n'ai pas de doc sur les requêtes SQL.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Incompatibilité: PluginManager & Import Export avec MS SQL
July 10, 2008 03:27PM
Salut Vincent,

Ok, en gros il n'y a que quelques truc à changer. Je pense que, pour tes pages de plugins, il y a moyen de récupérer depuis les paramètres d'installation de Mantis indiquant que c'est MS SQL qui est utilisé. C'est au moins dans le fichier config_inc.php (ou config_defaults_inc.php) du répertoire de Mantis. Cherche les lignes suivantes et la variable $g_db_type:
*****************************
# Supported types: 'mysql' or 'mysqli' for MySQL, 'pgsql' for PostgreSQL,
# 'mssql' for MS SQL Server, 'oci8' for Oracle, and 'db2' for DB2.
$g_db_type = 'mssql';
*****************************
Pour les différences avec MySQL et MS SQL voilà quelques pistes (si tu regardes, c'est ce que j'ai changé dans la version que j'ai posté de pluginmanager):
1) objet: création de tables conditionnées
1) syntaxe MySQL: CREATE TABLE IF NOT EXISTS table_toto ....
1) syntaxe MS SQL: if not exists (select id from sysobjects where type='U' and name='table_toto&#039winking smiley
create table table_toto ...
1) explication: sysobjects est un table système qui contient le listing de toutes les tables (type='U&#039winking smiley d'une base. On cherche donc si la table table_toto existe (name='table_toto&#039winking smiley et dans le cas contraire on la crée (create table table_toto ...)

2) o: type de donnée défini autrement
2) MySQL: unsigned
2) MS SQL: if faut supprimer unsigned
2) e:

3)o: type de donnée défini autrement
3) MySQL: int(7)
3) MS SQL: int
3) e:

4)o: nom des colonnes
4) MySQL: file ou function
4) MS SQL: [file] ou [function]
4) e: tu ne peux pas nommer un colonne file ou function (lors que le création de tables ou même de select, update...) directement. file et function sont des mots clés réservé pour MS SQL. Il faut mettre des [] autour de ces mots clés pour les échaper

5)o: type de donnée défini autrement
5) MySQL: int(7) auto_increment
5) MS SQL: int IDENTITY (1,1) NOT NULL
5) e: IDENTITY en MS SQL n'indique pas que c'est un clé primaire. Pour qu'un champ soit autoincrémentable il faut le déclarer en IDENTITY (1,1) NOT NULL

Voilà ce que j'ai trouvé qui posait problème dans le code du pluginmanager. Il doit aussi y avoir des erreurs similaires de syntaxe dans le plugin export/export et les autres.

Cordialement, winking smiley
Thomas
Sorry, only registered users may post in this forum.

Click here to login



Online Users

Guests: 3
Record Number of Users: 1 on April 02, 2023
Record Number of Guests: 115 on November 09, 2023
Top Users
Hébergeur : Morinie.Fr