IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

XE8 - IBDatabase et deploiement : plus de retro compatibilité


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut XE8 - IBDatabase et deploiement : plus de retro compatibilité
    Bonjour,
    Je développe des applis de gestion liées à des SGBD sous delphi depuis des années
    J'ai en particulier exploité une base de données Firebird (actuellement la 2.5.4) au travers des composants IBDatabase, IBxxxxx etc...
    On utilise Delphi 2007
    XE8 est sorti, et j'ai voulu vérifier la portabilité de mes sources sur cette nouvelle version avant que l'on franchisse véritablement le pas.
    Ca se passe bien sauf que ça ne tourne que sur Win10 !!!! : les exe ne sont plus portables ailleurs pour la plupart !!

    Un exemple simple reproductible :

    Prenez un PC sous Win10 sur lequel est installé XE8.
    Créez une nouvelle application VCL win 32.
    Sur la form1, déposez juste un composant TIBDatabase.
    Sauvegardez et compilez.
    L'executable fonctionne sur votre machine.

    Copiez le sur un PC sous Win XP (dans mon test, c'est même un XP SP3 !), copiez aussi (mais comme on ne va pas se connecter, ça ne devrait pas être nécessaire), GDS32.DLL et/ ou FBCLIENT.DLL

    Lancez l'exe sous XP :
    Ca plante avant même l'affichage de la forme avec une grosse exception dans le kernel sans plus d'explication : on ne trouve pas pourquoi.
    et en retirant le composant IBDatabase, ça fonctionne !

    Copiez l'exe et gds32.dll sur un PC sous seven, vous verrez qu'il fonctionne.

    Il doit y avoir une nouvelle dépendance mais laquelle ? impossible de trouver.

    Si vous avez une idée

    Merci
    Merci à tous

    Christophe

  2. #2
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut
    Bon, j'ai effectué un autre test :
    Même chose (form avec un ibdatabase) mais réalisé sous XE8 sur un Win7
    Je compile, je copie sur un XP et là, ça fonctionne !

    Donc, attention :
    XE8+Win 10 = plus de portabilité vers XP
    XE8+Win 7 = Exe encore portable sur XP

    Reste à savoir pourquoi

    Christophe
    Merci à tous

    Christophe

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    du coup tu m'inquiètes car je viens de passer mon poste de développement XE8 en W10 , d'un autre coté je n'utilise pas les IBxxxxxx mais Firedac
    reste qu'il va falloir que je fasse un test
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par Christ D Voir le message
    Bon, j'ai effectué un autre test :
    Même chose (form avec un ibdatabase) mais réalisé sous XE8 sur un Win7
    Je compile, je copie sur un XP et là, ça fonctionne !

    Donc, attention :
    XE8+Win 10 = plus de portabilité vers XP
    XE8+Win 7 = Exe encore portable sur XP

    Reste à savoir pourquoi

    Christophe
    voilà qui est surprenant, je n'ai pas connaissance d'options de compilation dépendant de l'OS hôte

    Est-ce bien la même version de Delphi ? il existe un XE8.1...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut
    La version de XE8 que je teste n'est pas celle appelée "update 1" (qui doit être la 8.1 je suppose)
    Je la testerai bien pour voir (mais avant de l'acheter, vu le prix !)

    J'ai vu un autre pb (même cas : source OK d'un programme qui exploite des composants idTCP en prod depuis 2006)

    Si compilée sur Win10, j'obtiens sur XP (et sur Seven !!) un message d'erreur : comme quoi le point d'entrée de la procédure EwtEventSetinformation n'est pas trouvé dans NT.DLL

    En cherchant j'ai vu que M$ a fait plein de modifs sur NT.DLL pour Win10 (dll qui contient cette procédure sur Win10 mais pas sur les autres OS)

    Si je compile ce même source toujours avec XE8 mais à partir d'une machine sous seven, ça fonctione de XP à Win10

    Ca craint, à moins de trouver vite une solution, je vais bloquer toute migration à Win10+XE8 de poste développeur

    Merci de nous tenir au courant de tes propres tests

    Christophe
    Merci à tous

    Christophe

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    de plus en plus étrange, EwtEventSetinformation n'est pas connu de Google et ce nom n’apparaît pas dans le répertoire Source de Delphi, pas plus que EventSetInformation

    les EXE d'un même projet compilé sous Seven et W10 ont la même taille ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut
    Heu c'est etweventsetinformation (désolé j'ai inversé le w et le t la 1ère fois)

    Sous Win7, l'exe fait 14 647 ko (fou hein !! juste une form avec un TIBDatabase !! bon d'accord, c'est en mode debug mais en mode relase, il fait quand même 3 029 ko !!!, sous Delphi 2007, ça aurait fait 800 ko à peine) ==> marche sous Win XP
    Sous Win10, il fait 14 601 ko (en mode debug) => marche pas sous WinXP

    Ah, bizarre non ? mêmes options de compilation, même compilateur (XE8), même source et des tailles d'exe différents !

    Christophe
    Merci à tous

    Christophe

  8. #8
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut
    Pour le moment, la solution mise en place est le développement sous Win7 avec abandon de Win10, pour pouvoir continuer de fournir des exécutables compatibles avec XP

    D'autre part, on a découvert autre chose :
    Quelques fois (pas toujours !) un projet fonctionnel développé sous Delphi 2007 contenant un TIBDatabase et que l'on veut migrer sur XE8 provoque des choses étranges :
    - compilation ok
    - plantage lors de l'exécution de IBDatabase.open (connexion à la base de données) : et ce n'est pas une exception catchée par Delphi, mais un bon gros planton

    Si on supprime le TIBDatabase (et le TIBTransaction) du code et qu'on les remets à l'aide de la palette de composant de XE8.
    - Compilation ok
    - Exécution ok

    J'ai constaté que les modules IBDatabse de la clause uses sont alors remplacé par des IBX.IBDatabase, ok mais en ce cas, pourquoi la compile fonctionne avec IBDatabase ?

    Strange !
    Merci à tous

    Christophe

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    cela me rappelle de vieux souvenirs :
    programme ok sur poste de dev qui plantait en copie sur un poste autre , le coupable : la connexion active (en dev c'est plus pratique).
    en recompilant sans la connexion active la copie fonctionnait nickel.
    Serait-ce un problème aussi bête ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre régulier
    Profil pro
    Ingénieur d'Etude
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur d'Etude

    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Points : 82
    Points
    82
    Par défaut
    Malheureusement non. Je n'aurai pas poste sinon
    Merci à tous

    Christophe

Discussions similaires

  1. Test de retro compatibilité 4.5 -> 3.5
    Par mappy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/05/2014, 14h18
  2. retro compatibilité SQL Server 2005 / Windows 2008
    Par j6m dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/06/2011, 12h04
  3. Retro compatibilité en css2
    Par vaneck dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 17/05/2011, 17h44
  4. Requête imbriquée, retro-compatibilité mysql3.23
    Par thegwil dans le forum Requêtes
    Réponses: 5
    Dernier message: 02/07/2006, 23h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo