📄 frmodbclogon.vb
字号:
Me.cboDrivers.ForeColor = System.Drawing.SystemColors.WindowText
Me.cboDrivers.IntegralHeight = True
Me.cboDrivers.Cursor = System.Windows.Forms.Cursors.Default
Me.cboDrivers.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cboDrivers.TabStop = True
Me.cboDrivers.Visible = True
Me.cboDrivers.Name = "cboDrivers"
Me._lblStep3_1.Text = "&DSN:"
Me._lblStep3_1.Size = New System.Drawing.Size(26, 13)
Me._lblStep3_1.Location = New System.Drawing.Point(9, 19)
Me._lblStep3_1.TabIndex = 0
Me._lblStep3_1.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_1.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_1.Enabled = True
Me._lblStep3_1.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_1.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_1.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_1.UseMnemonic = True
Me._lblStep3_1.Visible = True
Me._lblStep3_1.AutoSize = True
Me._lblStep3_1.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_1.Name = "_lblStep3_1"
Me._lblStep3_2.Text = "&UID:"
Me._lblStep3_2.Size = New System.Drawing.Size(22, 13)
Me._lblStep3_2.Location = New System.Drawing.Point(9, 42)
Me._lblStep3_2.TabIndex = 2
Me._lblStep3_2.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_2.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_2.Enabled = True
Me._lblStep3_2.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_2.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_2.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_2.UseMnemonic = True
Me._lblStep3_2.Visible = True
Me._lblStep3_2.AutoSize = True
Me._lblStep3_2.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_2.Name = "_lblStep3_2"
Me._lblStep3_3.Text = "密码(&P):"
Me._lblStep3_3.Size = New System.Drawing.Size(49, 13)
Me._lblStep3_3.Location = New System.Drawing.Point(9, 65)
Me._lblStep3_3.TabIndex = 4
Me._lblStep3_3.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_3.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_3.Enabled = True
Me._lblStep3_3.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_3.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_3.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_3.UseMnemonic = True
Me._lblStep3_3.Visible = True
Me._lblStep3_3.AutoSize = True
Me._lblStep3_3.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_3.Name = "_lblStep3_3"
Me._lblStep3_4.Text = "数据库(&B):"
Me._lblStep3_4.Size = New System.Drawing.Size(49, 13)
Me._lblStep3_4.Location = New System.Drawing.Point(9, 88)
Me._lblStep3_4.TabIndex = 6
Me._lblStep3_4.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_4.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_4.Enabled = True
Me._lblStep3_4.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_4.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_4.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_4.UseMnemonic = True
Me._lblStep3_4.Visible = True
Me._lblStep3_4.AutoSize = True
Me._lblStep3_4.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_4.Name = "_lblStep3_4"
Me._lblStep3_5.Text = "驱动(&V):"
Me._lblStep3_5.Size = New System.Drawing.Size(31, 13)
Me._lblStep3_5.Location = New System.Drawing.Point(9, 111)
Me._lblStep3_5.TabIndex = 8
Me._lblStep3_5.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_5.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_5.Enabled = True
Me._lblStep3_5.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_5.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_5.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_5.UseMnemonic = True
Me._lblStep3_5.Visible = True
Me._lblStep3_5.AutoSize = True
Me._lblStep3_5.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_5.Name = "_lblStep3_5"
Me._lblStep3_6.Text = "服务器(&S):"
Me._lblStep3_6.Size = New System.Drawing.Size(34, 13)
Me._lblStep3_6.Location = New System.Drawing.Point(9, 134)
Me._lblStep3_6.TabIndex = 10
Me._lblStep3_6.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me._lblStep3_6.BackColor = System.Drawing.SystemColors.Control
Me._lblStep3_6.Enabled = True
Me._lblStep3_6.ForeColor = System.Drawing.SystemColors.ControlText
Me._lblStep3_6.Cursor = System.Windows.Forms.Cursors.Default
Me._lblStep3_6.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._lblStep3_6.UseMnemonic = True
Me._lblStep3_6.Visible = True
Me._lblStep3_6.AutoSize = True
Me._lblStep3_6.BorderStyle = System.Windows.Forms.BorderStyle.None
Me._lblStep3_6.Name = "_lblStep3_6"
Me.Controls.Add(cmdCancel)
Me.Controls.Add(cmdOK)
Me.Controls.Add(_fraStep3_0)
Me._fraStep3_0.Controls.Add(txtUID)
Me._fraStep3_0.Controls.Add(txtPWD)
Me._fraStep3_0.Controls.Add(txtDatabase)
Me._fraStep3_0.Controls.Add(cboDSNList)
Me._fraStep3_0.Controls.Add(txtServer)
Me._fraStep3_0.Controls.Add(cboDrivers)
Me._fraStep3_0.Controls.Add(_lblStep3_1)
Me._fraStep3_0.Controls.Add(_lblStep3_2)
Me._fraStep3_0.Controls.Add(_lblStep3_3)
Me._fraStep3_0.Controls.Add(_lblStep3_4)
Me._fraStep3_0.Controls.Add(_lblStep3_5)
Me._fraStep3_0.Controls.Add(_lblStep3_6)
Me.fraStep3.SetIndex(_fraStep3_0, CType(0, Short))
Me.lblStep3.SetIndex(_lblStep3_1, CType(1, Short))
Me.lblStep3.SetIndex(_lblStep3_2, CType(2, Short))
Me.lblStep3.SetIndex(_lblStep3_3, CType(3, Short))
Me.lblStep3.SetIndex(_lblStep3_4, CType(4, Short))
Me.lblStep3.SetIndex(_lblStep3_5, CType(5, Short))
Me.lblStep3.SetIndex(_lblStep3_6, CType(6, Short))
CType(Me.lblStep3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.fraStep3, System.ComponentModel.ISupportInitialize).EndInit()
End Sub
#End Region
#Region "升级支持"
Private Shared m_vb6FormDefInstance As frmODBCLogon
Private Shared m_InitializingDefInstance As Boolean
Public Shared Property DefInstance() As frmODBCLogon
Get
If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then
m_InitializingDefInstance = True
m_vb6FormDefInstance = New frmODBCLogon()
m_InitializingDefInstance = False
End If
DefInstance = m_vb6FormDefInstance
End Get
Set
m_vb6FormDefInstance = Value
End Set
End Property
#End Region
Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv As Integer, ByVal fDirection As Short, ByVal szDSN As String, ByVal cbDSNMax As Short, ByRef pcbDSN As Short, ByVal szDescription As String, ByVal cbDescriptionMax As Short, ByRef pcbDescription As Short) As Short
Private Declare Function SQLAllocEnv Lib "ODBC32.DLL" (ByRef env As Integer) As Short
Const SQL_SUCCESS As Integer = 0
Const SQL_FETCH_NEXT As Integer = 1
Private Sub cmdCancel_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCancel.Click
Me.Close()
End Sub
Private Sub cmdOK_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdOK.Click
Dim sConnect As String
Dim sADOConnect As String
Dim sDAOConnect As String
Dim sDSN As String
If cboDSNList.SelectedIndex > 0 Then
sDSN = "DSN=" & cboDSNList.Text & ";"
Else
sConnect = sConnect & "Driver=" & cboDrivers.Text & ";"
sConnect = sConnect & "Server=" & txtServer.Text & ";"
End If
sConnect = sConnect & "UID=" & txtUID.Text & ";"
sConnect = sConnect & "PWD=" & txtPWD.Text & ";"
If Len(txtDatabase.Text) > 0 Then
sConnect = sConnect & "Database=" & txtDatabase.Text & ";"
End If
sADOConnect = "PROVIDER=MSDASQL;" & sDSN & sConnect
sDAOConnect = "ODBC;" & sDSN & sConnect
MsgBox("要打开一个ADO 连接,使用: " & vbCrLf & "Set gConnection = New Connection" & vbCrLf & "gConnection.Open """ & sADOConnect & """" & vbCrLf & vbCrLf & "要打开一个DAO 数据库对象,使用: " & vbCrLf & "设置 gDatabase = OpenDatabase(vbNullString, 0, 0, sDAOConnect)" & vbCrLf & vbCrLf & "或打开一个 RDO 连接, 使用:" & vbCrLf & "设置 gRDOConnection = rdoEnvironments(0).OpenConnection(sDSN, rdDriverNoPrompt, 0, sConnect)")
'设置 gDatabase = OpenDatabase(vbNullString, 0, 0, sDAOConnect)
'RDO:
'设置 gRDOConnection = rdoEnvironments(0).OpenConnection(sDSN, rdDriverNoPrompt, 0, sConnect)
End Sub
Private Sub frmODBCLogon_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
GetDSNsAndDrivers()
End Sub
'UPGRADE_WARNING: 初始化窗体时可能激发事件 cboDSNList.SelectedIndexChanged。 单击以获得更多信息:“ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup2075"”
Private Sub cboDSNList_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cboDSNList.SelectedIndexChanged
On Error Resume Next
If cboDSNList.Text = "(None)" Then
txtServer.Enabled = True
cboDrivers.Enabled = True
Else
txtServer.Enabled = False
cboDrivers.Enabled = False
End If
End Sub
Sub GetDSNsAndDrivers()
Dim i As Short
Dim sDSNItem As New VB6.FixedLengthString(1024)
Dim sDRVItem As New VB6.FixedLengthString(1024)
Dim sDSN As String
Dim sDRV As String
Dim iDSNLen As Short
Dim iDRVLen As Short
Dim lHenv As Integer '环境句柄
On Error Resume Next
cboDSNList.Items.Add("(None)")
'获得 DSNs
If SQLAllocEnv(lHenv) <> -1 Then
Do Until i <> SQL_SUCCESS
sDSNItem.Value = Space(1024)
sDRVItem.Value = Space(1024)
i = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem.Value, 1024, iDSNLen, sDRVItem.Value, 1024, iDRVLen)
sDSN = VB.Left(sDSNItem.Value, iDSNLen)
sDRV = VB.Left(sDRVItem.Value, iDRVLen)
If sDSN <> Space(iDSNLen) Then
cboDSNList.Items.Add(sDSN)
cboDrivers.Items.Add(sDRV)
End If
Loop
End If
'删除重复项
If cboDSNList.Items.Count > 0 Then
With cboDrivers
If .Items.Count > 1 Then
i = 0
While i < .Items.Count
If VB6.GetItemString(cboDrivers, i) = VB6.GetItemString(cboDrivers, i + 1) Then
.Items.RemoveAt((i))
Else
i = i + 1
End If
End While
End If
End With
End If
cboDSNList.SelectedIndex = 0
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -