Comment faire pour configurer les sources de données ODBC lors de la distribution des applications

Traductions disponibles Traductions disponibles
Numéro d'article: 123008 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit les quatre méthodes suivantes pour configurer une source de données ODBC sur un ordinateur :
  • Installation ODBC
  • RegisterDatabase
  • API DE ODBC
  • Fichiers de copie de INI non-voyants

Plus d'informations

Fichiers requis

Les fichiers suivants doivent être distribués avec votre application si vous utilisez ODBC. Lorsque vous utilisez l'Assistant Installation pour créer des disquettes de distribution, vérifiez que les fichiers nécessaires sont inclus dans la liste des fichiers. Tous les fichiers répertoriés doivent être installés dans le répertoire \Windows\System.

Fichiers facultatifs (SQL Server ou Oracle) sont signalées par un astérisque ().
File                  Description
----------------------------------------------------------------------
ODBC.DLL              The ODBC Driver Manager. This DLL is called by the
                      Microsoft Jet database engine when performing ODBC
                      operations. The Driver Manager handles loading the
                      correct ODBC driver and dispatching ODBC function
                      calls to the driver.

ODBCINST.DLL          The ODBC Driver Installation library. This DLL
                      contains Driver installation specific functions.
                      The ODBC Administrator (ODBCADM.EXE) calls functions
                      exported from this DLL when installing ODBC
                      drivers. You may also call functions in this DLL
                      to automate driver installation.

ODBCADM.EXE           The ODBC Administrator program. This program
                      allows a user to install ODBC drivers and
                      set up or modify Data Sources.

ODBCINST.HLP          The ODBC Administrator help file.

COMMDLG.DLL           The Common Dialog DLL. This DLL is used by the
                      ODBC Administrator program.

CTL3D.DLL             The 3D Control DLL. This DLL is used by the ODBC
                      Administrator program. If you are using ODBC.DLL
                      version 1.05 or greater, you need to distribute
                      CTL3DV2.DLL.

PDSODBC.DLL           Crystal Reports Physical Server DLL for ODBC. This
                      DLL is required only if your application uses Crystal
                      Reports to access an ODBC data source.

<driver>.DLL          The ODBC driver(s) that the application will use
                      to connect to specific Data Sources.

                      SQL Server:  SQLSRVR.DLL*
                      Oracle 6:    SQORA.DLL*

<netlib>.DLL          The network library file(s). This file is used
                      to access the Data Source when using a specific
                      network protocol.

                      Named Pipes: DBNMP3.DLL*
                      TCP/IP (Sybase SQL Server): WDBNOVTC.DLL*
                      IPX/SPX (Sybase SQL Server): WDBNOVSP.DLL*
                      SQL*Net Interface: ORA6WIN.DLL*

INSTCAT.SQL*          SQL Server Catalog Stored Procedures script.

DRVSSRVR.HLP*         SQL Server ODBC Driver help file.

ORASETUP.DLL*         Oracle ODBC Driver setup functions.

DRVORACL.HLP*         Oracle ODBC Driver help file.

ORACLE.TXT*           Oracle ODBC Setup "read me" file.

ODBC.INI              Initialization file containing information
                      about specific Data Sources. The DSN parameter
                      in the Connect property of the data control or
                      the OpenDatabase statement corresponds to an
                      entry in the ODBC.INI. This file must also be
                      created or modified on the client computer.

ODBCINST.INI          The Initialization file that contains
                      information about installed ODBC drivers. The
                      RegisterDatabase statement and ODBC Administrator
                      use the information contained in this file to
                      set up Data Sources. Entries in ODBCINST.INI
                      are created either by running an ODBC driver
                      setup or through the ODBC API. This file must
                      also be either created or modified on the client
                      computer.

Quatre méthodes pour obtenir les DSN des informations dans le fichier ODBC.ini et Odbcinst.ini

Les fichiers .ini stockent des informations sur l'ou les pilotes ODBC et les sources de données ODBC. Par conséquent, ils sont variable--est un utilisateur peut-être déjà les installer dans le répertoire \Windows. Si un développeur devait copier aveuglément ODBC.ini et Odbcinst.ini sur l'ordinateur de l'utilisateur, les nouveaux fichiers peuvent remplacer des sources de données existante.

Voici quatre méthodes que vous pouvez utiliser pour obtenir des informations DSN dans les fichiers de l'utilisateur ODBC.ini et Odbcinst.ini.

Installation ODBC

Pour installer un pilote ODBC et établir une source de données ODBC, la documentation d'aide en ligne de Visual Basic vous recommande de copier l'intégralité du contenu du répertoire \VB\ODBC sur un disque de distribution supplémentaires.

En tant que développeur, vous pouvez spécifier que le disque être inséré et exécutez Setup.exe à partir de la disquette. En outre, vous pouvez inviter l'utilisateur à insérer la disquette de configuration ODBC et puis utiliser la commande shell de Visual Basic pour du shell à Setup.exe.

L'Assistant Installation de copie et modifie SETUP1.MAK dans SETUP1A.MAK pendant le processus de création de disquettes de distribution. Il intègre SETUP1A.MAK SETUP1.EXE, il compresse et copie sur les disques de distribution. Lorsque Setup.exe est exécuté sur les disques de distribution, les fichiers dans Setup.lst sont copiés sur l'ordinateur de destination. SETUP1.EX_ est ensuite décompressés et exécutés pour commencer la copie des fichiers à partir des disquettes à l'ordinateur de destination.

Il est possible de modifier SETUP1A.MAK, reconstruire SETUP1.EXE, compresser, puis copier sur les disques de distribution. Pour vous assurer que la taille du fichier compressé s'inscrira sur le premier disque de distribution, vous devez pavé le projet avec du code avant pour la première exécution de l'Assistant Installation. Puis, vous pouvez modifier le code dans les commentaires et ajoutez du code pour demander la disquette d'installation de ODBC. La taille de fichier EXE résultante correspondra toujours puis sur la première disquette de distribution.

Modifier Setup1.frm dans le répertoire \VB\SETUPKIT\SETUP1 pour ajouter le code nécessaire pour remplir l'exécutable. Ce fichier est copié dans SETUP1A.MAK pendant l'exécution de l'Assistant Installation.

Remarque : support technique Microsoft ne prend pas en charge la modification du processus d'installation ou un des fichiers d'installation. Prise en charge est fournie pour l'Assistant Installation et fichiers qu'il crée sur une base de «tel quel» uniquement.

Voici les étapes à suivre :

  1. Démarrez Visual Basic et dans le menu fichier, choisissez Ouvrir un projet. Ouvert SETUP1.MAK dans le répertoire \VB\SETUPKIT\SETUP.
  2. Sélectionnez Setup1.frm à partir de la fenêtre du projet. Appuyez sur F7 pour afficher le code.
  3. À la fin de la Form_Load procédure, ajoutez le code suivant dans le ExitSub : étiquette partie, après RestoreProgMan et avant l'instruction End :
          Dim tmpK As String
          Dim tmpS As String
          Dim I As Long
          tmpK = "dummy"
          For I = 1 To 1000
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
          Next I
  4. Enregistrez le projet (ALT, F, V).
  5. Exécutez l'Assistant et créer les disquettes de distribution.
Une fois que les disques ont été créées, vous devez aller dans Visual Basic, modifiez SETUP1A.MAK, puis ajoutez le code approprié pour demander la disquette l'installation et installation de ODBC. Procédez comme suit :

  1. Démarrez Visual Basic.
  2. Ouvrez le projet SETUP1A.MAK dans \VB\SETUPKIT\SETUP1 (ALT, F, O).
  3. Choisissez SETUP1A.FRM et appuyez sur F7 pour afficher le code.
  4. Dans la procédure Form_Load, placer une apostrophe au début de chaque ligne du code factice qui a été précédemment inséré sous la forme d'un espace réservé :
          'Dim tmpK As String
          'Dim tmpS As String
          'Dim I As Long
          'tmpK = "dummy"
          'For I = 1 To 1000
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          'Next I
  5. Ajoutez le code suivant au sein de la procédure Form_Load immédiatement après le code commenté :
          x% = MsgBox("Do you want to install the ODBC Drivers?", 36,
             App.title)
          If x% = 6 Then
             If Not PromptForNextDisk(2, SourcePath$ + "ODBCADM.EX_") Then
                GoTo ErrorSetup
             End If
             x% = Shell(SourcePath$ &amp; "setup.exe")
          End If
  6. Modifier le numéro du disque 1 supérieur au nombre total de disques de distribution créé. Le numéro du disque est le premier paramètre à la procédure PromptForNextDisk. Dans cet exemple, le disque suivant pour demander est 2.
  7. Enregistrer le projet SETUP1A.MAK et créez le fichier exécutable comme SETUP1.EXE dans le répertoire \VB\SETUPKIT\SETUP1 (ALT, F, K).
  8. Shell out à l'invite de commande MS-DOS et placez-vous à \VB\SETUPKIT\SETUP1. Exécutez le code suivant à l'invite de commande :
    \VB\SETUPKIT\KITFILES\COMPRESS - r SETUP1.EXE
  9. Placez la première disquette de distribution dans le lecteur approprié, puis copiez SETUP1.EX_ sur la disquette :
    copie A:\SETUP1.EX_ de SETUP1.EX_
Désormais, lorsque vos disques de distribution sont exécutées, l'étape finale sera afin d'afficher un message de confirmation pour le disque d'installation de ODBC et d'installation. Setup.exe sera exécuté à partir de ce disque et l'utilisateur peut ensuite installer le pilote ODBC approprié et créer la source de données nécessaire. Vous devez inclure des instructions pour ce processus.

Pour plus d'informations sur la modification SETUP1.EXE, consultez le chapitre 25, «Distribution de votre application» dans Guide du programmeur Microsoft Visual Basic.

RegisterDatabase

Visual Basic propose l'instruction RegisterDatabase pour vous aider à installer des sources de données ODBC, pas de pilotes. L'instruction RegisterDatabase suppose que ODBCINST.ini et Odbcinst.dll existent déjà sur l'ordinateur. Autrement dit, les pilotes doivent être installés avant d'exécuter RegisterDatabase. Si tel est le cas, le développeur peut utiliser RegisterDatabase pour ajouter ou mettre à jour d'une entrée dans le fichier ODBC.ini.

Le problème avec cette méthode est que si l'ordinateur client n'a pas de ODBC installée sur l'ordinateur, l'ODBCINST.ini et la DLL n'existent pas. En outre, si le pilote ODBC est une nouveauté de l'ordinateur, il ne va pas être une entrée pour elle dans ODBCINST.ini, RegisterDatabase échoue puis ainsi.

La description, syntaxe, remarques et exemple à propos de l'instruction RegisterDatabase suivants proviennent de l'aide en ligne Visual Basic :

Description :
Rend les informations pour un nom de la source de données ODBC disponible pour une utilisation de connexion par la fonction OpenDatabase.
Syntaxe :
RegisterDatabase dsn, pilote, silencieux, attributs
Remarques : RegisterDatabase l'instruction compose des éléments suivants :

  • DSN : expression chaîne qui est un nom utilisé dans le OpenDatabase fonctionner et fait référence à un bloc d'informations descriptives sur la source de données. Par exemple, si la source de données est une base de données distante ODBC, il serait le nom du serveur.
  • DRIVER : expression chaîne qui correspond au nom du pilote ODBC. Il s'agit pas du nom du fichier DLL de pilote ODBC. Par exemple, «SQL Server» ou «Oracle» sont le nom du pilote mais «SQLSRVR.DLL» est le nom d'un fichier DLL. Vous devez disposer de ODBC et le pilote approprié est déjà installé.
  • En mode SILENCIEUX : une expression numérique qui a la valeur True si vous ne souhaitez pas afficher le pilote ODBC de boîtes de dialogue qui demandent des informations spécifiques au pilote, ou False si vous souhaitez afficher les boîtes de dialogue du pilote ODBC. Si elle est en mode silencieux est True, puis attributs doit contenir toutes les informations propres au pilote nécessaires ou de la boîte de dialogue s'affiche quand même.
  • ATTRIBUTES : chaîne d'expression est une liste de mots-clés à ajouter dans le fichier ODBC.ini. Les mots clés sont dans une chaîne délimitée retour chariot.
Exemple :
      Sub Command1_Click ()
         Dim att As String
         Dim mydb As Database

         att = "Description = SQL Server on server Texas" & Chr$(13)
         att = att & "OemToAnsi=No" & Chr$(13)   ' Build keywords string.
         att = att & "Server=TEXAS" & Chr$(13)
         att = att & "Network=DBNMP3" & Chr$(13)
         att = att & "Address=\\TEXAS\PIPE\SQL\QUERY" & Chr$(13)
         att = att & "Database=Pubs" & Chr$(13)
         att = att & "LastUser=Stimpy"

         ' Update ODBC.INI.
         RegisterDatabase "Texas", "SQL Server", True, att

         Set mydb = OpenDatabase("Texas", False, False, "ODBC;")
         mydb.Close

      End Sub
si la base de données est déjà inscrite dans le fichier ODBC.ini, l'entrée est mise à jour. Si RegisterDatabase échoue pour une raison quelconque, aucune modification n'est apportée au fichier ODBC.ini et une erreur se produit.

API DE ODBC

C'est probablement la méthode la plus souple et plus efficace, mais la plupart des développeurs n'êtes pas familiarisé avec elle et n'ont pas le Kit de développement ODBC SDK qui documente l'API. Les développeurs doivent obtenir le Kit de développement logiciel (SDK) Microsoft et obtenir le «du programmeur Microsoft ODBC 2.0 Reference and SDK Guide» Microsoft Press.

Copier INI

Si le développeur est certain qu'un fichier ODBC.ini et Odbcinst.ini n'existent pas sur l'ordinateur d'installation, ils peuvent simplement copier les fichiers. Toutefois, le développeur doit garantir que les chemins d'accès aux pilotes sont corrects ; chemins d'accès sont qualifiées dans les fichiers .ini. Par exemple, le fichier ODBC.ini spécifiera C:\WINDOWS\SYSTEM\SQLSRVR.DLL que le pilote pour SQL Server, afin que si le programme d'installation de l'utilisateur Windows est dans \WIN31, le chemin d'accès ne fonctionnera pas.

Propriétés

Numéro d'article: 123008 - Dernière mise à jour: mardi 13 juillet 2004 - Version: 1.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 4.0 Édition professionnelle
  • Microsoft Visual Basic 4.0 Édition professionnelle
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 3.0 Édition professionnelle
Mots-clés : 
kbmt kbdatabase kbhowto KB123008 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: 123008
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.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

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