vc sql server odbc如何动态创建一个数据源!!!
vc sql server odbc如何动态创建一个数据源!!!
实现条件:
1〉不使用控制面板,
2〉而后又能使数据源直接连到pubs库上,
3〉使用系统身份验证。
以上这些能够自动完成!!清高首赐教!!!
问题点数:0、回复次数:6Top
1 楼bohut(●伯虎● )回复于 2005-06-03 08:53:33 得分 0
写注册表动态创建SQL Server ODBC数据源
各个参数的意义:
DBServer: 数据库所在主机
DBName: 数据库名称
DSN: 数据源名称
UID: 登陆用户
返回值:
-1: 没有安装SQL Server驱动程序
-2: 其他错误
0: 成功
实现函数:
int MakeSQLServerODBCDSN(LPCTSTR DBServer,LPCTSTR DBName,LPCTSTR DSN,LPCTSTR UID)
{
BOOL bInstallDriver=TRUE;
CRegKey regKey;
LONG lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software\\ODBC\\ODBCINST.INI\\SQL Server");
if(lRet!=ERROR_SUCCESS)
{
bInstallDriver=FALSE;
}
else
{
char szDirverPath[MAX_PATH]="";
DWORD dwCount=100;
lRet=regKey.QueryValue(szDirverPath,"Driver",&dwCount);
if((lRet!=ERROR_SUCCESS)||(dwCount<1))
{
DWORD dwErr=GetLastError();
bInstallDriver=FALSE;
}
regKey.Close();
}
if(!bInstallDriver)
{
return -1;
}
CString strKeyValueName="Software\\ODBC\\ODBC.INI\\";
strKeyValueName+=DSN;
lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);
if(lRet!=ERROR_SUCCESS)
{
return -2;
}
regKey.SetValue(DBName,"Database");
regKey.SetValue("SQLSrv32.dll","Driver");
regKey.SetValue(DBServer,"Server");
regKey.SetValue(UID,"LastUser");
regKey.m_hKey=HKEY_LOCAL_MACHINE;
regKey.SetKeyValue("Software\\ODBC\\ODBC.INI\\ODBC Data Sources","SQL Server",DSN);
regKey.Close();
return 0;
}
Top
2 楼flyback(墨羽)回复于 2005-06-03 08:53:55 得分 0
注册表Top
3 楼dd97911(www)回复于 2005-06-03 09:19:37 得分 0
to:bohut(伯虎)
我是想实现:
怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS NT验证被选中”?
我写的部分代码:
if(SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"SQL Server",_T("DNS=myDNS\0SERVER=TEXT\0DATABASE=pubs\0"));我是由控制面板打开DNS时,默认的选择“使用用户登陆的ID和密码的SQL SERVER身份验证”,我怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS NT验证被选中”呢?Top
4 楼dd97911(www)回复于 2005-06-03 09:19:45 得分 0
to:bohut(伯虎)
我是想实现:
怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS NT验证被选中”?
我写的部分代码:
if(SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"SQL Server",_T("DNS=myDNS\0SERVER=TEXT\0DATABASE=pubs\0"));我是由控制面板打开DNS时,默认的选择“使用用户登陆的ID和密码的SQL SERVER身份验证”,我怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS NT验证被选中”呢?Top
5 楼koko1998(高价购买火车票)回复于 2005-06-03 09:40:30 得分 0
http://www.vckbase.com/document/finddoc.asp?mclsid=&sclsid=&page=1&keyword=odbcTop
6 楼bohut(●伯虎● )回复于 2005-06-03 09:51:57 得分 0
参考
http://www.vckbase.com/document/viewdoc/?id=249Top




