VB *.ini配置文件连接数据库!

placj 2009-12-15 02:03:27
1、配置文件为:cnn.ini
[FreeFile]
UserIP=192.168.1.100
UserDataBase=Business

2、数据库链接为:
Public Function ConnectString() _
As String
Dim UserIP As String
Dim UserDataBase As String
Dim FileName

FileName = FreeFile
Open App.Path + "\cnn.ini" For Input As FileName
Input #FileName, UserIP, UserDataBase
'返回一个数据库连接
ConnectString = "Provider=SQLOLEDB;User ID=sa;PWD=;Server="& UserIP &";database="& UserDataBase &""
End Function

这样写了链接不上请问需要怎么改哈!请指教!谢谢!
...全文
157 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
windyhero1983 2009-12-16
  • 打赏
  • 举报
回复
我晕,有那么麻烦么?ini用txt文本方式读就成了。
dim sStr(2) as string
dim i as integer
Open App.Path + "\cnn.ini" For Input As FileName
do until eof(1)
i = 0
Input #FileName, sStr(i)
i = i+1
close filename
UserIP = right(sStr(0),len(sstr(0)-7)
UserDataBase = right(sStr(1),len(sStr(1) - 13))
set sStr(2) = nothing
guyehanxinlei 2009-12-16
  • 打赏
  • 举报
回复

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal strLpReturnedString 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 Long

Private Function GetProfileString(ByVal sectionName As String, ByVal keyName As String, ByVal filePath As String) As String
Dim sReturnValue As String

Dim lReturnSize As Long
sReturnValue = String(255, Chr(0))
lReturnSize = GetPrivateProfileString(sectionName, keyName, "", sReturnValue, 255, filePath)

GetProfileString = Replace(Left(sReturnValue, lReturnSize), Chr(0), "")
End Function

Private Function WriteProfileString(ByVal sectionName As String, ByVal keyName As String, ByVal value As String, ByVal filePath As String) As Boolean
Dim lReturn As Long
lReturn = WritePrivateProfileString(sectionName, keyName, value, filePath)
If lReturn < 1 Then
WriteProfileString = False
Else
WriteProfileString = True
End If
End Function

lxq19851204 2009-12-15
  • 打赏
  • 举报
回复
Private Sub Class_Initialize()
Dim iCount As Integer
Dim sKeyValue As String * 255
Dim sTmpStr As String

If InStr(UCase$(App.Path), "PROJECTS") = 0 Then
AppPath = App.Path
Else 'to prevent error when running in development situation
AppPath = Left$(App.Path, Len(App.Path) - 9)
End If

sIniFile = "\PCPOS.INI"

If Dir(AppPath & sIniFile) = "" Then
' if local .ini file not found, create it
WritePrivateProfileString "General", "IniFilePath", "Current", AppPath & sIniFile
WritePrivateProfileString "General", "DataPath", AppPath & "\DATA", AppPath & sIniFile
WritePrivateProfileString "Initialize", "bModemCable", "True", AppPath & sIniFile
' WritePrivateProfileString "Terminal", "SalesDataPath", AppPath & "\DATA", AppPath & sIniFile
' WritePrivateProfileString "Terminal", "Terminal", "0", AppPath & sIniFile
sIniPath = AppPath
Exit Sub
End If

iCount = GetPrivateProfileString("General", "IniFilePath", NULL_KEY_VALUE, sKeyValue, Len(sKeyValue), AppPath & sIniFile)
If iCount = 0 Then
Err.Raise vbObjectError + 1001, "Read INI file failed"
Exit Sub
End If
sTmpStr = Left$(sKeyValue, InStr(sKeyValue, Chr(0)) - 1)
If sTmpStr = NULL_KEY_VALUE Or sTmpStr = "" Then
Err.Raise vbObjectError + 1001, "Invalid INI file path"
Exit Sub
End If
If sTmpStr = "Current" Then
sIniPath = AppPath
Else
If Dir(sTmpStr & sIniFile) = "" Then
Err.Raise vbObjectError + 1001, "Invalid INI file path"
Exit Sub
End If
sIniPath = sTmpStr
End If
End Sub
lxq19851204 2009-12-15
  • 打赏
  • 举报
回复
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal _
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
fly1229 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jhone99 的回复:]
你读取ini文件的方式不对
[/Quote]
ini读出来是错的,用网上的读取ini的类,把ip等读出来
king06 2009-12-15
  • 打赏
  • 举报
回复
搜索
GetPrivateProfileString
fly1229 2009-12-15
  • 打赏
  • 举报
回复
改了下,试试行不

Public Function ConnectString() _
As String
Dim UserIP As String
Dim UserDataBase As String
Dim FileName

FileName = FreeFile
Open App.Path + "\cnn.ini" For Input As FileName
Input #FileName, UserIP, UserDataBase
'返回一个数据库连接
'ConnectString = "Provider=SQLOLEDB;User ID=sa;PWD=;Server="& UserIP &";database="& UserDataBase &""

ConnectString = "Driver={SQL Server};DataBase="& UserDataBase &";Server=("& UserIP &");UID=sa;PWD="

End Function
jhone99 2009-12-15
  • 打赏
  • 举报
回复
你读取ini文件的方式不对
jhone99 2009-12-15
  • 打赏
  • 举报
回复
Public Function ConnectString() _
As String
Dim UserIP As String
Dim UserDataBase As String
Dim FileName

FileName = FreeFile
Open App.Path + "\cnn.ini" For Input As FileName
Input #FileName, UserIP, UserDataBase
'返回一个数据库连接
ConnectString = "Provider=SQLOLEDB;User ID=sa;PWD=;Server="& UserIP &";database="& UserDataBase &""
debug.print ConnectString '看输出什么
End Function
  • 打赏
  • 举报
回复
掉用api取得ip和name
Public conn As New ADODB.Connection Public nowconnectstring As String Public operatetype As Integer Public Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Public Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpAdd As String, ByVal lpFileName As String) As Boolean 'Public pzhm As Variant Public server As String Public loginname As String Public database As String Public pass As String Public path As String Private mSystemData As Object '帐套连接信息对象(帐套名,当前用户等) '=================================================================='定义公用变量 '在工程中新建一模块,并将以下代码加入到该的模块中(即module1.bas) Public tmpDataGrid As DataGrid '用与确定要实现滚动的DataGrid控件 Public tmpDataGridRowNum As Long '有多少行数据 Public Const GWL_WNDPROC = (-4) Public Const WM_COMMAND = &H111; Public Const WM_MBUTTONDOWN = &H207; Public Const WM_MBUTTONUP = &H208; Public Const WM_MOUSEWHEEL = &H20A; Public Oldwinproc As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Property Get SystemProfile() As Object If mSystemProfile Is Nothing Then Set mSystemProfile = GLData.SystemProfile End If Set SystemProfile = mSystemProfile End Property Public Property Set SystemProfile(ByVal NewVal As Object) Set mSystemProfile = NewVal Set GLData.SystemProfile

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧