VB与SQLServer2000数据库连接时,将连接信息写成ini文件或者记录文件
ini的内容至少包括servername,databasename,username,password四个方面内容,请问,如何在VB执行时取来ini文件的信息,它的执行过程如何?

解决方案 »

  1.   

    Option Explicit
    '读写INI文件模块
    Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal AppName As String, ByVal KeyName As String, ByVal keydefault As String, ByVal Filename As String) As LongPublic Function myReadINI(iniFileName, iniSection, iniKey, iniDefault)
    '该函数的使用与读注册表类似
    'inifilename为INI文件名,inisection为INI文件中的项目,inikey为项目下的键名称,inidefault为默认键值
    'If no section (appname), default is first appname
    '(若无项目名,默认为初始名称)
    'if no key, default is first key
    '(若无键名,默认为初始键名)
        Dim lpApplicationName As String
        Dim lpKeyName As String
        Dim lpDefault As String
        Dim lpReturnedString As String
        Dim nSize As Long
        Dim lpFileName As String
        Dim retval As Long
        Dim Filename As String
        '判断INI文件是否存在
        If Dir(iniFileName) <> "" Then
            lpDefault = Space$(254)
            lpDefault = iniDefault
            lpReturnedString = Space$(254)
            nSize = 254
            lpFileName = iniFileName
            lpApplicationName = iniSection
            lpKeyName = iniKey
            Filename = lpFileName
            retval = GetPrivateProfileString(lpApplicationName, lpKeyName, lpDefault, lpReturnedString, nSize, lpFileName)
            myReadINI = lpReturnedString
        End If
    End FunctionPublic Function myWriteINI(iniFileName As String, iniSection As String, iniKey As String, Info As String) As String
        '该函数的使用与写注册表类似,可在INI文件中添加或修改项、键、值
        'iniFileName为INI文件名,inisection为INI文件中的项目,inikey为项目下的键名称,Info为键值
        Dim retval As Long
        retval = WritePrivateProfileString(iniSection, iniKey, Info, iniFileName)
        myWriteINI = LTrim$(Str$(retval))
    End FunctionPublic Sub DelSectionINI(iniFileName As String, iniSection As String)
        '该过程可删除INI文件中指定的项
        'iniFileName为INI文件名,iniSection为指定的项
        '判断INI文件是否存在
        If Dir(iniFileName) <> "" Then
            WritePrivateProfileString iniSection, vbNullString, vbNullString, iniFileName
        End If
        
    End SubPublic Sub DelKeyINI(iniFileName As String, iniSection As String, iniKey As String)
        '该过程可删除INI文件中指定的键
        'iniFileName为INI文件名,iniSection为指定的项,iniKey为指定的键
        '判断INI文件是否存在
        If Dir(iniFileName) <> "" Then
            WritePrivateProfileString iniSection, iniKey, vbNullString, iniFileName
        End If
    End SubPublic Sub DelValueINI(iniFileName As String, iniSection As String, iniKey As String)
        '该过程可删除INI文件中指定键的值
        'iniFileName为INI文件名,iniSection为指定的项,iniKey为指定的键
        '判断INI文件是否存在
        If Dir(iniFileName) <> "" Then
            WritePrivateProfileString iniSection, iniKey, "", iniFileName
        End If
    End SubPublic Sub DelFileINI(iniFileName As String)
        '该过程可删除INI文件
        'iniFileName为INI文件名
        '判断INI文件是否存在
        If Dir(iniFileName) <> "" Then
            Kill iniFileName
        End If
    End Sub
      

  2.   

    '语言:Micrisift Visual Basic 6.0
    '功能:ini文件读写函数
    '作者:黄旭东
    '日期:2004-10-22
    '版权:CopyRight 2001-2005 By Faib Studio
    '网址:http://faib.yeah.net
    '邮件:[email protected] ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongDim i As Integer, Buffer As StringPublic Function GetValue(FileName As String, Section As String, Name As String) As String
    '读取INI文件值
        On Error GoTo er
        Dim s As String
        s = String(1024, 0)
        s = Left(s, Val(GetPrivateProfileString(Section, Name, "", s, Len(s), FileName)))
        i = InStr(s, Chr(0))
        If i <> 0 Then GetValue = Left(s, i - 1) Else GetValue = s
    er:
        If Err.number <> 0 Then GetValue = vbNullChar
    End FunctionPublic Function DeleteSection(FileName As String, Section As String) As Long
    '删除指定节点
        DeleteSection = WritePrivateProfileString(Section, vbNullString, vbNullString, FileName)
    End FunctionPublic Function DeleteValue(FileName As String, Section As String, Name As String) As Long
    '删除指定键名
        DeleteValue = WritePrivateProfileString(Section, Name, vbNullString, FileName)
    End FunctionPublic Function SetValue(FileName As String, Section As String, Name As String, Value As String) As Long
    '设置指定键的值
        SetValue = WritePrivateProfileString(Section, Name, Value, FileName)
    End FunctionPublic Function EnumValue(FileName As String, Section As String, Key() As String) As Long
    '获取指定节点下的所有键
        On Error GoTo er
        Dim ss As String
        Dim pos As Integer, Count As Integer
        Buffer = String(32767, 0)
        GetPrivateProfileSection Section, Buffer, Len(Buffer), FileName
        pos = InStr(Buffer, Chr(0))
        Do
            ReDim Preserve Key(Count)
            ss = Left(Buffer, pos - 1)
            Key(Count) = Left(ss, InStr(1, ss, "=") - 1)
            Buffer = Mid(Buffer, pos + 1)
            pos = InStr(Buffer, Chr(0))
            If pos <= 1 Then Exit Do
            Count = Count + 1
        Loop
        EnumValue = Count
        Exit Function
    er:
        ReDim Key(0)
        EnumValue = 0
    End FunctionPublic Function EnumSection(FileName As String, Section() As String) As Long
    '获取所有节点
        On Error GoTo er
        Dim Length As Long, pos As Integer, Count As Integer
        Buffer = String(32767, 0)
        Length = GetPrivateProfileString(vbNullString, vbNullString, "", Buffer, Len(Buffer), FileName)
        Buffer = Left(Buffer, Length)
        Do
            ReDim Preserve Section(Count)
            pos = InStr(Buffer, Chr(0))
            If Left(Buffer, pos - 1) = "" Then Exit Do
            Section(Count) = Left(Buffer, pos - 1)
            Buffer = Mid(Buffer, pos + 1)
            If Len(Buffer) <= 0 Then Exit Do
            Count = Count + 1
        Loop
        EnumSection = Count
        Exit Function
    er:
        ReDim Section(0)
        EnumSection = 0
    End FunctionPublic Function SectionExists(FileName As String, Section As String) As Boolean
        On Error GoTo er
        Dim Length As Long, pos As Integer, Count As Integer
        Buffer = String(32767, 0)
        Length = GetPrivateProfileString(vbNullString, vbNullString, "", Buffer, Len(Buffer), FileName)
        Buffer = Left(Buffer, Length)
        Do
            pos = InStr(Buffer, Chr(0))
            If Left(Buffer, pos - 1) = "" Then Exit Do
            If UCase(Left(Buffer, pos - 1)) = UCase(Section) Then SectionExists = True: Exit Do
            Buffer = Mid(Buffer, pos + 1)
            If Len(Buffer) <= 0 Then Exit Do
        Loop
        Exit Function
    er:
        SectionExists = False
    End Function
      

  3.   

    写:
    Ini.SetValue FileName, "data", "servername", ServerName
    Ini.SetValue FileName, "data", "databasename", DatabaseName
    Ini.SetValue FileName, "data", "username", Username
    Ini.SetValue FileName, "data", "password", Password
    读:
    ServerName = Ini.GetValue(FileName, "data", "servername")
    DatabaseName = Ini.GetValue(FileName, "data", "databasename")
    Username = Ini.GetValue(FileName, "data", "username")
    Password = Ini.GetValue(FileName, "data", "password")
      

  4.   

    请飞步给我讲明ini文件中servername,databasename,username,password怎么写?
    我在VB中读写ini在窗体中怎么写?