Visual Basic 4.0'in 32-bit sürümünde DSN'siz bağlantılar kullanmak mümkündür, ancak bu sözdizimini ODBC 16-bit sürümü işleyebilir, Visual Basic 4.0 16-bit sürümünü bunun mümkün değildir, çünkü. Bu özelliği, dinamik olarak oluşturmak ve bir veri kaynağı adı (DSN) sözcüğünü ODBC API çağrısı kullanarak anında kaldırma öykünme olasıdır.
Aşağıdadır bir 16- ve 32-bit örnek bu teknik gösterilmiştir. Bu teknik, aşağıda açıklandığı gibi diğer kullanımlar olduğundan, 32-bit kodu bulunmaktaydı. Bu makalede sunulan 32-bit teknikleri, Visual Basic 5.0 için de geçerlidir.
32-Bit ODBC kullanabilme DSN'siz bağlantı, birçok kullanımı vardır:
Istemci kolaylığı. Kullanıcı merak bir DSN ayarlama, doğru şekilde yeniden adlandırma, ayar seçenekleri, vb. hakkındaki gerekmez. Tüm bu uygulama tarafından dinamik olarak yapılabilir.
Bu, birçok JET alt yapısı bağlantı çözdü ve bağlantı dizesi sorunları önbelleğe alma.
Uygulama esnekliğini artırır.
Tüm bu 16-bit ODBC oluşturarak ve hızlı bir DSN silme gerçekleşmiş. Bu yöntem, basit bir DSN yönetimi için de yararlıdır. Kod, otomatik olarak oluşturmak, değiştirmek veya herhangi bir anda bir DSN silmek için kullanılabilir. Visual Basic DBEngine.RegisterDatabase() yöntemini kullanarak bir DSN oluşturma yeteneği sağlamaz, ancak bu API, daha büyük işlevler ve değiştirmek ve DSN, aynı zamanda kaldırma olanağı sağlar.
Araçlar menüsünün altında <a1>Seçenekler</a1> iletişim kutusunun Gelişmiş sekmesi, Visual Basic 4.0 16-bit kullanıyorsanız kullanarak, Visual Basic 4.0 32-bit ya da 0, 1'e eşit wın32 adlı bir koşullu derleme Argument ayarlayın.
Iki CommandButtons varsayılan forma ekleyin.
Aşağıdaki kodu için bir genel bildirimleri ekleyin:
Option Explicit
'Constant Declaration
Private Const ODBC_ADD_DSN = 1 ' Add data source
Private Const ODBC_CONFIG_DSN = 2 ' Configure (edit) data source
Private Const ODBC_REMOVE_DSN = 3 ' Remove data source
Private Const vbAPINull As Long = 0& ' NULL Pointer
'Function Declare
#If WIN32 Then
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
(ByVal hwndParent As Long, ByVal fRequest As Long, _
ByVal lpszDriver As String, ByVal lpszAttributes As String) _
As Long
#Else
Private Declare Function SQLConfigDataSource Lib "ODBCINST.DLL" _
(ByVal hwndParent As Integer, ByVal fRequest As Integer, ByVal _
lpszDriver As String, ByVal lpszAttributes As String) As Integer
#End If
Click olayı Command1 aşağıdaki kodu ekleyin:
#If WIN32 Then
Dim intRet As Long
#Else
Dim intRet As Integer
#End If
Dim strDriver As String
Dim strAttributes As String
'Set the driver to SQL Server because it is most common.
strDriver = "SQL Server"
'Set the attributes delimited by null.
'See driver documentation for a complete
'list of supported attributes.
strAttributes = "SERVER=SomeServer" & Chr$(0)
strAttributes = strAttributes & "DESCRIPTION=Temp DSN" & Chr$(0)
strAttributes = strAttributes & "DSN=DSN_TEMP" & Chr$(0)
strAttributes = strAttributes & "DATABASE=pubs" & Chr$(0)
'To show dialog, use Form1.Hwnd instead of vbAPINull.
intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, _
strDriver, strAttributes)
If intRet Then
MsgBox "DSN Created"
Else
MsgBox "Create Failed"
End If
Click olayı Command2 aşağıdaki kodu ekleyin:
#If WIN32 Then
Dim intRet As Long
#Else
Dim intRet As Integer
#End If
Dim strDriver As String
Dim strAttributes As String
'Set the driver to SQL Server because most common.
strDriver = "SQL Server"
'Set the attributes delimited by null.
'See driver documentation for a complete list of attributes.
strAttributes = "DSN=DSN_TEMP" & Chr$(0)
'To show dialog, use Form1.Hwnd instead of vbAPINull.
intRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, _
strDriver, strAttributes)
If intRet Then
MsgBox "DSN Deleted"
Else
MsgBox "Delete Failed"
End If
Projeyi çalıştırın.
Command1 DSN_TEMP adlı DSN eklemek için tıklatın.
Command2 DSN_TEMP adlı DSN kaldırmak için Ek Yardım düğmesini tıklatın.
Ö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:171146
(http://support.microsoft.com/kb/171146/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.