Comment implémenter une fonction de rappel de SQL Server 2000 Desktop Engine et un exemple

Traductions disponibles Traductions disponibles
Numéro d'article: 315463 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit comment faire pour implémenter une fonction de rappel pendant l'installation de la 2000 de SQL Server Desktop Engine (MSDE 2000) et décrit également tous les les conditions qui doivent être remplies pour vous assurer que la fonction de rappel s'exécute correctement.

SQL Server 2000 Desktop Engine (MSDE 2000) est une version redistribuable du moteur de base de données relationnelles de Microsoft SQL Server 2000. Il permet une application qui utilise le moteur de base de données relationnelle de SQL Server pour installer le moteur dans le cadre du processus d'installation application.

Le package d'installation MSDE 2000 permet d'utiliser une fonction de rappel pour suivre l'avancement ou pour effectuer des actions personnalisées pendant l'installation.

Conditions d'utilisation de la fonction de rappel

Pour la fonction de rappel exécuter normalement, les conditions suivantes doivent être remplies :
  • Vous devez implémenter la fonction de rappel comme une Windows Installer personnalisé action type 1 lié bibliothèque dynamiques (DLL). Par exemple, vous pouvez utiliser le Microsoft Visual C++ étendu stockées procédure Assistant pour créer un DLL de rappel.

    Pour plus d'informations sur les types de bibliothèque de Windows Installer, reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
    http://msdn.microsoft.com/library/en-us/msi/cact_6a05.asp?frame=true
  • La fonction de rappel doit résider dans l'un des dossiers suivants :
    • Le dossier qui est renvoyé par l'appel Win32 GetTempPath .
    • Le dossier {Product code} présent dans le dossier qui est renvoyé par l'appel Win32 GetTempPath .

      note {Product code} est un espace réservé pour le code du produit de l'instance MSDE 2000 est installé sur votre ordinateur.
    En règle générale, le dossier qui est renvoyé par la Win32 GetTempPath appel est la variable d'environnement TMP % . Si la variable d'environnement TMP % n'est pas disponible, il est la variable d'environnement % Temp% .

    Pour plus d'informations sur la fonction Win32 GetTempPath , reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
    http://msdn.microsoft.com/library/en-us/fileio/base/gettemppath.asp

  • La fonction de rappel Desktop Engine doit prendre un paramètre UINT supplémentaire qui contient le code sortie Desktop Engine ou code de retour. La définition d'une fonction de rappel ressemble à
    UINT __stdcall MyCallbackFunction(MSIHANDLE hinstall, UINT uExitCode)
    						
    uExitCode contient la configuration de Desktop Engine code de sortie, ou code de retour.

Étapes d'exemple et code à l'implémentation d'une fonction de rappel

Les étapes suivantes décrivent l'implémentation d'une fonction de rappel exemple à l'aide de Visual Studio 6.0.

  1. Dans Microsoft Visual C++ 6.0 IDE, cliquez sur fichier , puis cliquez sur Nouveau . Sous l'onglet projets , cliquez sur l'Assistant traitement des stockée étendue.
  2. Spécifiez un nom de projet. Par exemple, MyCallback . Vous pouvez également spécifier l'emplacement dans lequel vous souhaitez créer le projet. Cliquez sur OK .
  3. Spécifiez un nom à la fonction de rappel. Par exemple, MyCallbackFunction . Notez que l'exemple utilise l'Assistant traitement des stockée étendue pour créer un DLL de rappel. L'Assistant recommande que vous spécifiez un nom commençant par « XP_ ». Toutefois, vous pouvez ignorer cette recommandation et spécifiez le nom de fonction de rappel de votre choix. Cliquez sur Terminer .
  4. Cette opération va créer les classes et les fichiers cpp nécessaires. Dans le volet Espace de travail, vous verrez l'espace de travail de ce projet. Sélectionnez le ClassView , puis puis développez le dossier entrées globales dans l'arborescence de classes MyCallback . Il vous verrez la définition de la fonction MyCallbackFunction .

    Le code d'exemple pour la fonction de rappel est dans le titre d'exemple de code suivant. Vous pouvez tester le projet en copiant le code suivant dans la fonction MyCallbackFunction .

    Exemple de code

    #include <stdafx.h>
    
    #define XP_NOERROR 0
    #define XP_ERROR 1
    #define MAXCOLNAME 25
    #define MAXNAME 25
    #define MAXTEXT 255
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    UINT __declspec(dllexport) MyCallbackFunction(HANDLE hinstall, UINT uExitCode);
    
    #ifdef __cplusplus
    }
    #endif
    
    UINT __declspec(dllexport) MyCallbackFunction(HANDLE hinstall, UINT uExitCode)
    {
    
         TCHAR buffer[1024];
    
         wsprintf(buffer, TEXT("**Callback** Return code is %d"), uExitCode);
    
         MessageBox(NULL, buffer, TEXT("MyCallbackFunction Dialog"), MB_OK);
    
         return 0;
    }
    					
    Cet exemple de fonction de rappel affiche un message par ce texte sur chaque appel :
    **Callback** Return code is 0
    					
  5. Créer le fichier MyCallback.dll en utilisant le menu Générer . La DLL est créée et enregistrée dans un sous-dossier nommé débogage , au même emplacement spécifié à l'étape 2.
  6. Une fois la DLL est créée, vous devez copier la DLL vers un emplacement qui dépend de la version de MSDE 2000 est installé sur votre ordinateur.
    • Si vous utilisez Microsoft SQL Server 2000 Desktop Engine SP2, vous devez copier la DLL à l'emplacement qui est définie par une des suivantes variables environnement :
      • TMP %
      • % temp% .
      Pour obtenir l'environnement de valeurs de variables sur un ordinateur spécifique pour l'utilisateur actuellement connecté, tapez la commande suivante à partir d'une invite de commandes :
      SET
      Cette commande affiche toutes les variables d'environnement, notamment TMP et TEMP .
    • Si vous utilisez Microsoft SQL Server 2000 Desktop Engine SP3a, vous devez copier la DLL à un des emplacements suivants :
      • %TMP%\ {Product code}
      • %TEMP%\ {Product code}
      note {Product code} est un espace réservé pour le code du produit de l'instance MSDE 2000 est installé sur votre ordinateur.

      Par exemple, si votre instance de MSDE 2000 possède un code de produit de E09B48B5-E141-427A-AB0C-D3605127224A, vous devez copier la DLL à la % TMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} ou % TEMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} dossier.
  7. Utilisez l'option Bureau moteur Windows Installer RAPPEL à appeler la fonction de rappel pendant l'installation. Par exemple :
    CALLBACK=Dllname!CallbackFunctionName
    pour cet exemple montre comment la syntaxe est :
    setup.exe /L*v c:\msde_setup.log CALLBACK=MyCallback!MyCallbackFunction
    					

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
299795 Comment faire pour MSDE 2000 auteur des packages avec Visual Studio Installer 1.1 d'installation


Kit de développement logiciel (SDK) Windows Installer fait partie du Microsoft Platform Kit de développement (SDK). Pour plus d'informations sur le Kit de développement Platform SDK, reportez-vous au site de Web Microsoft suivant :
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
En ligne de SQL Server 2000 ; rubriques: « création SQL Server applications » « distribution de SQL Server applications » « distribution de SQL Server avec les applications l'identification »; « bureau moteur Windows Installer retour codes »; « bureau moteur Windows Installer rappel fonctions »

Propriétés

Numéro d'article: 315463 - Dernière mise à jour: samedi 8 février 2014 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
Mots-clés : 
kbnosurvey kbarchive kbmt kbhowtomaster KB315463 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 315463
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com