【help】MFC与SQL server连接的问题 本帖最后由 foshanzhuifeng 于 2010-07-10 18:15:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 m_pRecordset.CreateInstance(__uuidof(Recordset)); 返回值E_NOINTERFACE不支持此接口 void CVStarDataBaseToolDlg::OnBnClickedBtnModifydatabase(){ m_pConnection.CreateInstance(__uuidof(Connection)); GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(false); if (0 != ConnectVStarDataBase()) { AfxMessageBox(_T("连接VStar数据库失败!")); GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(true); m_pConnection = NULL; return; } if (0 != ExecuteModifyMission()) { AfxMessageBox(_T("修改数据库失败!")); } else { AfxMessageBox(_T("修改数据库成功!")); } GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(true); m_pConnection->Close(); m_pConnection = NULL;}int CVStarDataBaseToolDlg::ConnectVStarDataBase(){ try { m_pConnection->Open("Driver={SQL Server};Server=(local)\\vstar;Database=vstar;Uid=sa;Pwd=;", "", "", adConnectUnspecified); } catch(_com_error e) { if (m_pConnection != NULL) { m_pConnection.Release(); m_pConnection = NULL; } return 1; } catch(...) { if (m_pConnection != NULL) { m_pConnection.Release(); m_pConnection = NULL; } return 1; } return 0;}int CVStarDataBaseToolDlg::ExecuteSQL(char* sql){ _variant_t RecordsAffected; try { m_pConnection->Execute(sql, &RecordsAffected, adCmdText); } catch(_com_error e) { //m_pConnection->Close(); //m_pConnection.Release(); //m_pConnection = NULL; return 1; } catch(...) { //m_pConnection->Close(); //m_pConnection.Release(); //m_pConnection = NULL; return 1; } return 0;}int CVStarDataBaseToolDlg::ExecuteModifyMission(){ char* sql; sql = NULL; sql = "if not exists (select 1 from syscolumns where id=object_id('Channel') and name='RecordSound') \ alter table Channel add RecordSound bit NULL"; if (0 != ExecuteSQL(sql)) { return 1; } return 0;}给你一段代码参考一下~ CVStarDataBaseToolDlg::ConnectVStarDataBase()//连接数据库CVStarDataBaseToolDlg::ExecuteSQL(char* sql)//执行SQL语句 我现在的问题是无法创建Connection对象,重新注册ADO也不行一、注册ADO: 1.单击“开始”->“运行” 2.输入 REGSVR32 "C:\Program Files\Common Files\System\ado\msado15.dll" 3.单击“确定”按钮 从别的机器上拷个msado15过来重新注册下. 你要确认一下:在stdafx.h头文件中是否加上#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") "ADODB.Connection "多了一个空格,问题解决了,thank you chenlycly AND zyq5945 view指针和句柄的关联问题?高手急救! ftp编译连接错误,为何静态库正确动态库错误 请问winsock有没有一个类似flush的函数,强制刷出send缓存中的内容? 菜鸟级问题:如何监测系统正要启动某一个进程? 如何取得汉字的首字母 如何在一个DLL中建一个控件 一个设计问题 如何登陆安装了serv-u的(不能匿名的)ftp服务器? MFC控件 debug&release 请教一下,如何取得USB视频的一桢 web控件里的网页卡住怎么办
返回值E_NOINTERFACE
不支持此接口
{
m_pConnection.CreateInstance(__uuidof(Connection)); GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(false); if (0 != ConnectVStarDataBase())
{
AfxMessageBox(_T("连接VStar数据库失败!"));
GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(true);
m_pConnection = NULL;
return;
} if (0 != ExecuteModifyMission())
{
AfxMessageBox(_T("修改数据库失败!"));
}
else
{
AfxMessageBox(_T("修改数据库成功!"));
} GetDlgItem(IDC_BTN_MODIFYDATABASE)->EnableWindow(true);
m_pConnection->Close();
m_pConnection = NULL;
}int CVStarDataBaseToolDlg::ConnectVStarDataBase()
{
try
{
m_pConnection->Open("Driver={SQL Server};Server=(local)\\vstar;Database=vstar;Uid=sa;Pwd=;", "", "", adConnectUnspecified);
}
catch(_com_error e)
{
if (m_pConnection != NULL)
{
m_pConnection.Release();
m_pConnection = NULL;
}
return 1;
}
catch(...)
{
if (m_pConnection != NULL)
{
m_pConnection.Release();
m_pConnection = NULL;
}
return 1;
} return 0;
}int CVStarDataBaseToolDlg::ExecuteSQL(char* sql)
{
_variant_t RecordsAffected;
try
{
m_pConnection->Execute(sql, &RecordsAffected, adCmdText);
}
catch(_com_error e)
{
//m_pConnection->Close();
//m_pConnection.Release();
//m_pConnection = NULL;
return 1;
}
catch(...)
{
//m_pConnection->Close();
//m_pConnection.Release();
//m_pConnection = NULL;
return 1;
} return 0;
}
int CVStarDataBaseToolDlg::ExecuteModifyMission()
{
char* sql;
sql = NULL; sql = "if not exists (select 1 from syscolumns where id=object_id('Channel') and name='RecordSound') \
alter table Channel add RecordSound bit NULL";
if (0 != ExecuteSQL(sql))
{
return 1;
} return 0;
}给你一段代码参考一下~
CVStarDataBaseToolDlg::ExecuteSQL(char* sql)//执行SQL语句
一、注册ADO:
1.单击“开始”->“运行”
2.输入 REGSVR32 "C:\Program Files\Common Files\System\ado\msado15.dll"
3.单击“确定”按钮
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")