frm_ODBC.frm
上传用户:ake0106
上传日期:2022-07-23
资源大小:4052k
文件大小:8k
源码类别:

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form frm_ODBC 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "配置ODBC"
  5.    ClientHeight    =   2595
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   5280
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   2595
  13.    ScaleWidth      =   5280
  14.    StartUpPosition =   2  '屏幕中心
  15.    Begin VB.CommandButton cmdEixt 
  16.       Caption         =   "退出"
  17.       Height          =   435
  18.       Left            =   2730
  19.       TabIndex        =   4
  20.       Top             =   1950
  21.       Width           =   1770
  22.    End
  23.    Begin VB.CommandButton cmdSTAR 
  24.       Caption         =   "开始配置"
  25.       Height          =   435
  26.       Left            =   855
  27.       TabIndex        =   3
  28.       Top             =   1950
  29.       Width           =   1770
  30.    End
  31.    Begin VB.TextBox txtDB_NAME 
  32.       Height          =   300
  33.       Left            =   1650
  34.       Locked          =   -1  'True
  35.       TabIndex        =   2
  36.       Text            =   "RSDAGLXT"
  37.       Top             =   945
  38.       Width           =   3510
  39.    End
  40.    Begin VB.TextBox txtODBC 
  41.       Height          =   300
  42.       Left            =   1650
  43.       Locked          =   -1  'True
  44.       TabIndex        =   1
  45.       Text            =   "RSDAGLXT"
  46.       Top             =   1365
  47.       Width           =   3510
  48.    End
  49.    Begin VB.TextBox txtUserName 
  50.       Enabled         =   0   'False
  51.       Height          =   300
  52.       Left            =   1650
  53.       Locked          =   -1  'True
  54.       TabIndex        =   0
  55.       Top             =   105
  56.       Width           =   3510
  57.    End
  58.    Begin VB.Label Label5 
  59.       AutoSize        =   -1  'True
  60.       Caption         =   "SQL数据库名称:"
  61.       ForeColor       =   &H80000008&
  62.       Height          =   180
  63.       Left            =   75
  64.       TabIndex        =   9
  65.       Top             =   1005
  66.       Width           =   1350
  67.    End
  68.    Begin VB.Label Label3 
  69.       AutoSize        =   -1  'True
  70.       Caption         =   "ODBC数据源名称:"
  71.       ForeColor       =   &H80000008&
  72.       Height          =   180
  73.       Left            =   75
  74.       TabIndex        =   8
  75.       Top             =   1410
  76.       Width           =   1440
  77.    End
  78.    Begin VB.Label Label4 
  79.       Caption         =   "用户名:"
  80.       ForeColor       =   &H80000008&
  81.       Height          =   225
  82.       Left            =   75
  83.       TabIndex        =   7
  84.       Top             =   150
  85.       Width           =   855
  86.    End
  87.    Begin VB.Label Label2 
  88.       AutoSize        =   -1  'True
  89.       Caption         =   "SQL驱动:"
  90.       ForeColor       =   &H80000008&
  91.       Height          =   180
  92.       Index           =   0
  93.       Left            =   75
  94.       TabIndex        =   6
  95.       Top             =   600
  96.       Width           =   810
  97.    End
  98.    Begin VB.Label Label1 
  99.       BorderStyle     =   1  'Fixed Single
  100.       Height          =   300
  101.       Left            =   1650
  102.       TabIndex        =   5
  103.       Top             =   525
  104.       Width           =   3510
  105.    End
  106. End
  107. Attribute VB_Name = "frm_ODBC"
  108. Attribute VB_GlobalNameSpace = False
  109. Attribute VB_Creatable = False
  110. Attribute VB_PredeclaredId = True
  111. Attribute VB_Exposed = False
  112. Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias _
  113.     "GetVolumeInformationA" (ByVal lpRootPathName As String, _
  114.     ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, _
  115.     lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
  116.     lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
  117.     ByVal nFileSystemNameSize As Long) As Long
  118.     '创建注册表项
  119. Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _
  120.    "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
  121.    phkResult As Long) As Long
  122.    '设置注册表项中的值
  123. Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
  124.    "RegSetValueExA" (ByVal hKey As Long, ByVal lpvaluename As String, _
  125.    ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
  126.    ByVal cbData As Long) As Long
  127.    '打开注册表中的项
  128. Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _
  129.    "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
  130.    ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  131.    '获取子项
  132.    
  133. Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  134. Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
  135.    "RegQueryValueExA" (ByVal hKey As Long, ByVal lpvaluename As String, _
  136.    ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
  137. Const REG_SZ = 1
  138. Const REG_DWORD = 4
  139. Const HKEY_CURRENT_USER = &H80000001
  140. Dim fso, txtfile
  141. Dim mySerial As Long
  142. Dim mylong As Long
  143. '提取计算机名和用户名
  144. Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  145. Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  146.   '提取系统目录
  147. Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  148.   Dim hKey As Long
  149.   Dim strLong As String * 256
  150.   Dim S As String * 100
  151.   Dim Length As Long
  152.   Dim WinPath As String
  153.   Dim SysPath As String
  154. Private Sub cmdSTAR_Click()
  155.     '向创建ODBC数据源
  156.     Dim ret1 As Long, ret2 As Long, ret3 As Long
  157.     ret1 = RegOpenKeyEx(HKEY_CURRENT_USER, "SoftwareODBCODBC.INI", 0, 0, hKey)
  158.     If ret1 <> 0 Then
  159.       RegCreateKey HKEY_CURRENT_USER, "SoftwareODBCODBC.INI" & txtODBC.text, hKey
  160.     End If
  161.     RegSetValueEx hKey, "Database", 0, REG_SZ, ByVal txtDB_NAME.text, Len(txtDB_NAME.text)
  162.     RegSetValueEx hKey, "Driver", 0, REG_SZ, ByVal Label1.Caption, Len(Label1.Caption)
  163.     RegSetValueEx hKey, "LastUser", 0, REG_SZ, ByVal txtUserName.text, Len(txtUserName.text)
  164.     RegSetValueEx hKey, "Server", 0, REG_SZ, ByVal "(local)", 7
  165.     RegSetValueEx hKey, "Trusted_Connection", 0, REG_SZ, ByVal "Yes", 3
  166.     '驱动Server ODBC数据源
  167.     ret2 = RegOpenKeyEx(HKEY_CURRENT_USER, "SoftwareODBCODBC.INIODBC Data Sources", 0, 0, hKey)
  168.     If ret2 <> 0 Then
  169.        RegCreateKey HKEY_CURRENT_USER, "SoftwareODBCODBC.INIODBC Data Sources", hKey
  170.     End If
  171.     ret3 = RegSetValueEx(hKey, txtODBC.text, 0, REG_SZ, ByVal "SQL Server", 10)
  172.     If ret3 = 0 Then
  173.       MsgBox "ODBC数据源配置成功!", , "系统提示"
  174.       Load frm_main
  175.       frm_main.Show
  176.       Unload Me
  177.     End If
  178. End Sub
  179. Private Sub Form_Load()
  180.   Dim cn As New ADODB.Connection
  181.   cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master"
  182.   On Error GoTo dataErr
  183. dataErr:
  184.   If Trim(Err.Description) <> "数据库 'RSDAGLXT' 已存在。" Then
  185.     cn.Execute ("sp_attach_db @dbname ='RSDAGLXT', @filename1 = N" & "'" & App.Path & "RSDAGLXT_Data.MDF', @filename2 = N" & "'" & App.Path & "RSDAGLXT_Log.LDF'")
  186.   End If
  187.   Dim ret As Long
  188.   ret = RegOpenKey(HKEY_CURRENT_USER, "SoftwareODBCODBC.INIRSDAGLXT", hKey)
  189.   If ret = 0 Then
  190.     Load frm_main
  191.     frm_main.Show
  192.     Unload Me
  193.   Else
  194.   '提取SQL驱动
  195.   Length = GetSystemDirectory(S, Len(S))
  196.   SysPath = Left(S, Length)
  197.   Label1.Caption = SysPath + "sqlsrv32.dll"
  198.      '提取计算机名称和用户名
  199.      GetUserName strLong, 255
  200.      txtUserName.text = "sa"
  201.      strLong = Trim(strLong)
  202.   End If
  203. End Sub
  204. Private Sub cmdEixt_Click()
  205.   End
  206. End Sub