我用ADOConnection通过ODBC连接数据库,但是用户(比如sa)登录的密码改了之后该怎么办呢?

yangzhy 2005-08-23 01:32:33
大家好,如题,我连接数据库用的是ADOConnection,然后它的connectstring中我是通过ODBC中的某个数据源连接到具体某个库的,但是sa密码修改后程序就不能连通数据库了,怎么办?

之所以通过ODBC连接,是因为我的目标数据库不确定。

谢谢各位!
...全文
278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
痞子酷 2005-08-26
  • 打赏
  • 举报
回复
/************************************************
连接数据库
输入参数:
strPassword:数据库密码
strUserID : 用户名
strDateSource: Data Source数据源名称,比如ODBC的系统DSN名称
strDatabase: 数据库名称
返回值:小于0 表示失败,大于或者等于0 表示成功
*************************************************/
int __fastcall TAccessAdoData::ConnectDataBase(char *strPassword,char *strUserID,char *strDataSource,char *strDatabase)
{
/*
ADO连接数据库:Provider=MSDASQL.1;Password=1111;Persist Security Info=True;User ID=sa;Data Source=access;Initial Catalog=AMDBF

Password= ?
User ID= ?
data souce= ?
Initial Catalog=?
*/
#define CONNECTION_STRING "Provider=MSDASQL.1;Password=%s;Persist Security Info=True;User ID=%s;Data Source=%s;Initial Catalog=%s"
char tmpBuf[1024];
memset(&tmpBuf,0,sizeof(tmpBuf));
sprintf(tmpBuf, CONNECTION_STRING,
strPassword,
strUserID,
strDataSource,
strDatabase);
try{
ADOConnectionAm->ConnectionString=WideString(tmpBuf);
ADOConnectionAm->LoginPrompt = false;
ADOConnectionAm->KeepConnection =true;
ADOConnectionAm->Open();
//ADOConnectionAm->Connected=true;
}catch(...)
{
//UseLog("连接数据库失败:[%s]",tmpBuf);
return -1;
}
if ( ADOConnectionAm->Connected==false)
return -1;
return 0;
}
mbj 2005-08-26
  • 打赏
  • 举报
回复
一般是使用一个INI配置文件,把用户名,密码加密后放在文件中,读出来后在解密,对数据库连接。
caizhen2000_82 2005-08-25
  • 打赏
  • 举报
回复
也许可以自己做一个登录的界面
notruiyi 2005-08-24
  • 打赏
  • 举报
回复
做一个配置文件,里面存储用户名和密码,
这样安全性稍差,另外可以存储在目录服务器中,配置文件中存储目录服务器地址
目录服务只能通过程序读取里面的数据
yangzhy 2005-08-24
  • 打赏
  • 举报
回复
没人理睬?顶一下。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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