我在一台计算机上开发了一个小系统,采用的是SQL sever 数据库,c/s结构。系统开发完以后,我把数据库放到服务上,把客户端放到另一台计算机上,可是我不知道如何连接它们,搞手指点一下,多谢!!!
如果用ADO的话,客户机不需要安装SQL客户端。把Microsoft Data Access Components v2.8安装一下就行了。
主要是ADOConnection的连接字符串中指定服务器的名称或IP,如:
String strSvr = "服务器IP或名称";
String strPwd = "你的密码";
String strConn = "Provider=SQLOLEDB.1;Password=" + strPwd
+ ";Persist Security Info=True;User ID=sa;Initial Catalog=EBAS;"
+ "Data Source=" + strSvr + ";Use Procedure for Prepare=1;"
+ "Auto Translate=True;Packet Size=4096;Workstation ID="
+ strSvr + ";Use Encryption for Data=False;"
+ "Tag with column collation when possible=False";
经过上面的检验,如果仍然连结不上
如果在一台没有安装Sql server客户端的机器上用ADO控件连结不上sql server服务器,有可能是客户机ado版本太低,在控制面板-〉管理工具-〉odbc数据源那检查一下你的sql server版本是否相同,如果不同客户机安装ADO2.6以上版本即可连结成功
/************************************************
连接数据库
输入参数:
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;
}