
SQLEXPRESS服务开启或者设置为自动启动.
连接字符串如下:Data Source=.\SQLEXPRESSAttachDbFilename=|DataDirectory|\Test.mdfIntegrated Security=TrueUser Instance=True
|DataDirectory|代表app_data数据文件夹相对路径.
比如Test.mdf数据库需要放在app_data文件夹内这样就是相对路径.如果选择MS SERVER 数据库文件就是选择数据库的绝对路径了 。
"\"在C语言的作用忘记了?
如果数据库存放位置是本机,建议使用127.0.0.1
否则:如果是公网,则用域名,局域网则用IP
最好是将连接字串写在非EXE里,这样方便发布和修改数据库服务器位置、帐号密码
还有,vc中连通前,你应该在mssql管理器中尝试连接,如果在mssql管理器中都连接不能,则问题不出在VC中
case DATABASE_MSSQL:strcpy_s(data,"Driver={SQL Server}")
strcat_s(data,"Server=")
strcat_s(data,addr)
if(addr[0]!='.')//如果服务器地址使用".",则不能加端口
{
strcat_s(data,",")
strcat_s(data,port)
}
strcat_s(data,"")
strcat_s(data,"UID=")
strcat_s(data,user)
strcat_s(data,"")
strcat_s(data,"PWD=")
strcat_s(data,pwd)
strcat_s(data,"")
if(strlen(database))
{
strcat_s(data,"Database=")
strcat_s(data,database)
strcat_s(data,"")
}
上面是连接字符串生成代码,下面是打开连接的函数
int CAdoDataBase::Open(const char* data)
{
int ret=0
memset(m_strLogin,0,1024)
strcpy_s(m_strLogin,data)
this->Lock()
do
{
try
{
m_pConnection.CreateInstance(__uuidof(Connection))
ret=m_pConnection->Open((_bstr_t)data,"","",adModeUnknown)
m_bFlag=TRUE
ret=0
}
catch (_com_error e)
{
m_bFlag=FALSE
strcpy_s(m_strErrCode,e.Description())
m_pConnection=NULL
ret=-1
}
} while (FALSE)
this->UnLock()
return ret
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)