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

这样写了链接不上请问需要怎么改哈!请指教!谢谢!
...全文
154 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

7,785

社区成员

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

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