Makale numarası: 184608 - Son Gözden Geçirme: 15 Temmuz 2004 Perşembe - Gözden geçirme: 1.3

Program aracılığıyla VB ile SQL Server bir DSN oluşturma.

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede program aracılığıyla bir veri kaynağı adı (DSN) oluşturmak Visual Basic kullanarak, SQL Server için gösterilmiştir. Bu makalede açıklanan yöntemi, Windows kayıt defterindeki girişleri oluşturmak ve Windows Uygulama Programlama Arabirimi'nde (API) işlevlerini kullanır.

Daha fazla bilgi

DSN ODBC veri kaynağı Yöneticisi penceresinde, Windows Denetim Masası (veya Windows 2000'de Yönetici Araçları) erişilebilir aracılığıyla genellikle oluşturulur. <a1>RegisterDatabase</a1> (veri erişim nesnesi (DAO) yöntem) kullanarak ODBC API SQLConfigDataSource işlevi kullanılarak ya da DSN'siz bağlantı dizesini kullanarak, ODBC-uyumlu veritabanlarına erişim sağlayan başka teknikler içerir.

Ancak, el ile oluşturup Windows kayıt defterindeki değerleri işleme yeni DSN'ı kurmak mümkündür. Aşağıdaki yöntem, SQL Server veritabanı için bir Sistem DSN Oluşturma RegCloseKey API RegCreateKey ve RegSetValueEx işlevleri kullanır.

Adım adım yordamlar

  1. Yeni bir Visual Basic projesi açın. Varsayılan olarak, Form1 oluşturulur. Form1'üzerinde bir KomutDüğmesi put (Command1) ve aşağıdaki kodu Form1 için kodu Genel Declarations bölümünde yerleştirin:
        Option Explicit
    
        Private Const REG_SZ = 1    'Constant for a string variable type.
        Private Const HKEY_LOCAL_MACHINE = &H80000002
    
        Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _
           "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
           phkResult As Long) As Long
    
        Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
           "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
           ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal _
           cbData As Long) As Long
    
        Private Declare Function RegCloseKey Lib "advapi32.dll" _
           (ByVal hKey As Long) As Long
    						
  2. Aşağıdaki kod, click olayı, Form1 Command1</a1> düğmesinde koyun:

    Ortamınıza uygun olarak verikaynağıadı, veritabanı adı, açıklaması, DriverPath, LastUser ve sunucu değişkenlerinin değerleri değiştirin. Herhangi bir ODBC veri kaynağı yöneticisi penceresinin ODBC sürücüleri sekmesinde listelenen sürücüleri DriverPath değişkeni bir parçası olarak kullanılabilir. Bu sürücülerin tüm makineler, C:\Windows\System for Windows 95 veya Windows 98 ve Windows NT için C:\Winnt\System32 bulunamadı.
       Private Sub Command1_Click()
    
       Dim DataSourceName As String
       Dim DatabaseName As String
       Dim Description As String
       Dim DriverPath As String
       Dim DriverName As String
       Dim LastUser As String
       Dim Regional As String
       Dim Server As String
    
       Dim lResult As Long
       Dim hKeyHandle As Long
    
       'Specify the DSN parameters.
    
       DataSourceName = "<the name of your new DSN>"
       DatabaseName = "<name of the database to be accessed by the new DSN>"
       Description = "<a description of the new DSN>"
       DriverPath = "<path to your SQL Server driver>"
       LastUser = "<default user ID of the new DSN>"
       Server = "<name of the server to be accessed by the new DSN>"
       DriverName = "SQL Server"
    
       'Create the new DSN key.
    
       lResult = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & _
            DataSourceName, hKeyHandle)
    
       'Set the values of the new DSN key.
    
       lResult = RegSetValueEx(hKeyHandle, "Database", 0&, REG_SZ, _
          ByVal DatabaseName, Len(DatabaseName))
       lResult = RegSetValueEx(hKeyHandle, "Description", 0&, REG_SZ, _
          ByVal Description, Len(Description))
       lResult = RegSetValueEx(hKeyHandle, "Driver", 0&, REG_SZ, _
          ByVal DriverPath, Len(DriverPath))
       lResult = RegSetValueEx(hKeyHandle, "LastUser", 0&, REG_SZ, _
          ByVal LastUser, Len(LastUser))
       lResult = RegSetValueEx(hKeyHandle, "Server", 0&, REG_SZ, _
          ByVal Server, Len(Server))
    
       'Close the new DSN key.
    
       lResult = RegCloseKey(hKeyHandle)
    
       'Open ODBC Data Sources key to list the new DSN in the ODBC Manager.
       'Specify the new value.
       'Close the key.
    
       lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
          "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", hKeyHandle)
       lResult = RegSetValueEx(hKeyHandle, DataSourceName, 0&, REG_SZ, _
          ByVal DriverName, Len(DriverName))
       lResult = RegCloseKey(hKeyHandle)
    
       End Sub
    						
  3. Projeyi çalıştırın ve Command1 komut düğmesini tıklatın. Daha sonra Denetim Masası (veya Windows 2000'de Yönetici Araçları) ODBC veri kaynağı yöneticisi açın. Diğer sistem ile birlikte önceden oluşturmuş olduğunuz bir DSN, yeni DSN görüntülenir.

Referanslar

Ek bilgi için lütfen aşağıdaki Microsoft Knowledge Base'deki makaleleri bakın:
166392  (http://support.microsoft.com/kb/166392/EN-US/ ) RDO ile "DSN-Less" ODBC bağlantıları nasıl kullanılır
147875  (http://support.microsoft.com/kb/147875/EN-US/ ) "DSN-Less" ODBC bağlantıları RDO DAO ile nasıl kullanılır
171146  (http://support.microsoft.com/kb/171146/EN-US/ ) Nasıl oluşturulur ve DSN Visual Basic'te Kaldır
123008  (http://support.microsoft.com/kb/123008/EN-US/ ) Uygulamaları dağıtma, ODBC veri kaynakları kurma nasıl

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbhowto KB184608 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:184608  (http://support.microsoft.com/kb/184608/en-us/ )