请大家进来看看~~~~~~

qingyun67 2005-10-21 08:47:07
vb+sqlserver
想做一个系统的登陆窗体,这个系统是c/s结构的,出于程序可移植性和灵活性的考虑,系统中要连接的数据库服务器并不在系统中写死,而是可以设置的。
现在主要有个问题,登陆这连接服务器怎么写好呢???
请大家帮忙看看,讨论讨论~~~~~~
...全文
152 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
as54608451899 2005-11-22
  • 打赏
  • 举报
回复
用ini最好,然后你在你的模块定义一个方法就可以了。
Tiger_Zhao 2005-11-22
  • 打赏
  • 举报
回复
用 COM+,只需要在服务器上配置及访问数据库,客户端统一调用服务器(COM+)对象
DengXingJie 2005-11-22
  • 打赏
  • 举报
回复
在服務器上放一UDL文件
Cn.ConnectionString = "\\192.168.2.1\g$\udl\eee.udl;"
Cn.Open
不過這種方法有個缺點,就是要知道服務器的用戶名及密碼,
你可以開一個專用的用戶及密碼,權限限制只能讀udl文件夾

qingyun67 2005-10-27
  • 打赏
  • 举报
回复
我的数据库放在服务器上,应用程序在用户本机上,
写的这个ini的文件是放在客户端了吧,我的服务器密码更改了,要在每一个客户机上都更改么?
faysky2 2005-10-23
  • 打赏
  • 举报
回复
用ini文件
文件名:DB.ini
内容:
[DB]
Server=服务器名或者ip
DataBase=数据库名
LogId=数据库用户名
LogPassword=密码
--------------------
'模块代码:
Option Explicit
Private 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

'自定义读取INI函數
Private Function getIni(ByVal pfileName As String, ByVal psection As String, ByVal pkey As String) As String
Dim x As Long, Buff As String * 128, i%
x = GetPrivateProfileString(psection, pkey, "", Buff, 128, pfileName)
i = InStr(Buff, Chr(0))
getIni = Trim(Left(Buff, i - 1))
End Function

Public Sub getConnString()
On Error Resume Next

Dim dataBase As String * 255
Dim serverName As String * 255
Dim userID As String * 255
Dim PWD As String * 255
Dim filePath As String
filePaht=App.Path & "\DB.ini"

userID = getIni(filePath, "DB", "LogID")
PWD = getIni(filePath, "DB", "LogPassword")
dataBase = getIni(filePath, "DB", "DataBase")
ServerName= getIni(filePath, "DB", "Server")

getConnString= "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & Trim(userID) & ";Password=" & Trim(PWD) & ";Initial Catalog=" & Trim(DataBase) & ";Data Source=" & Trim(serverName)
End Sub
'窗体代码:
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString=getConnString
cn.Open
......
End Sub

qingyun67 2005-10-23
  • 打赏
  • 举报
回复
再顶一下~~~~
winehero 2005-10-21
  • 打赏
  • 举报
回复
项数不多,写注册表好些,记得密码加密。。。
东东多的话,搞个INI,对INI加密(解密临时文件放到隐秘地方,名字可怪一些等等,看你了),密码也加密,呵呵,双保险。
sz20006km 2005-10-21
  • 打赏
  • 举报
回复
自己在MSDN 里面看下 ADO


ADO 提供执行以下操作的方式:

连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。


指定访问数据源的命令,同时可带变量参数,或优化执行。


执行命令。


如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。


适当情况下,可使用缓存行的更改内容来更新数据源。


提供常规方法检测错误(通常由建立连接或执行命令造成)。
在典型情况下,需要在编程模型中采用所有这些步骤。但是,由于 ADO 有很强的灵活性,所以最后只需执行部分模块就能做一些有用的工作。例如:将数据从文件直接存储到缓存行,然后仅用 ADO 资源对数据进行检查。

zyg0 2005-10-21
  • 打赏
  • 举报
回复
文件名:yf.ini
内容:
[Database]
DBMS=服务器名或者ip
Data=数据库名
LogId=数据库用户名
LogPassword=密码
调用:

private 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 CN As String
Public Sub cnSet()
On Error Resume Next

Dim db As String * 255
Dim servername As String * 255
Dim user As String * 255
Dim pass As String * 255
Dim n As Integer
n = GetPrivateProfileString("database", "dbms", "", servername, Len(servername), App.Path & "\YF.ini")
servername = Left(servername, n)
n = GetPrivateProfileString("database", "Data", "", db, Len(db), App.Path & "\YF.ini")
db = Left(db, n)
n = GetPrivateProfileString("database", "LogId", "", user, Len(user), App.Path & "\YF.ini")
user = Left(user, n)

' pass = "lclydszygzdf"
n = GetPrivateProfileString("database", "LogPassword", "", pass, Len(pass), App.Path & "\YF.ini")
pass = Left(pass, n)


CN = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" _
& Trim(user) & ";Password=" & Trim(pass) & ";Initial Catalog=" & Trim(db) & ";Data Source=" _
& Trim(servername)
CN = Trim(CN)
End Sub
IamDeane 2005-10-21
  • 打赏
  • 举报
回复
在注册表里吧,比较隐蔽点,随便找个地方写入,再进行一下简单的加密就更安全了
weiweiplay 2005-10-21
  • 打赏
  • 举报
回复
将数据库连接写在INI文件,最好加密,这样别人就看不到你数据库的用户名和密码了
上官云峰 2005-10-21
  • 打赏
  • 举报
回复
通过ini写动态数据库最简单
Fanks 2005-10-21
  • 打赏
  • 举报
回复
很多方法阿,写在ini文件中、写在注册表里都可以阿。

7,763

社区成员

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

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