void CAddDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
CoInitialize(NULL);//初始化COM库
_ConnectionPtr pConn(_uuidof(Connection));//利用智能指针定义了一个ADO Connection对象,
//利用关键字_uuidof获取ADO Connection接口的全局唯一标识符(GUID),对pConn对象初始化
_RecordsetPtr pRst(_uuidof(Recordset));//利用智能指针定义了一个ADO Recordset对象
pConn->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=XP-201308221218";//为数据口连接对象的连接字符串赋值
pConn->Open("","","",adConnectUnspecified);//这里可以直接为这些参数传递一个空字符串,因为它们已经在连接字符串中设置好了
//pRst=pConn->Execute("select * from 菜单",NULL,adCmdText);
//pRst->AddNew(_variant_t(m_addname),m_addprice);
//pRst->m_strName=m_addname;
//pRst->AddNew("菜名",_variant_t(m_addname));
//pRst->AddNew("单价",m_addprice);
//pRst->AddNew();
//pRst->PutCollect("菜单",_variant_t(m_addname));
//pRst->Update();
_variant_t RecordsAffected;
pRst=pConn->Execute("INSERT INTO 菜单 (菜名,单价) VALUES ((_variant_t)m_addname,(_variant_t)m_addprice)",&RecordsAffected,adCmdText);
pRst->Close();//关闭记录集
pConn->Close();//关闭连接
pRst.Release();//释放智能指针在COM接口上的引用计数
pConn.Release();
CoUninitialize();//卸载COM库
错误为:estaurant.exe 中的 0x7c812fd3 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0012ebbc 处的 _com_error。
13 个解决方案
#1
是SQL SERVER 200X?
#2
先单步调试下到哪一步出错,然后说下哪里。可参考这些代码http://blog.csdn.net/bojie5744/article/details/30067969
#3
是SQL SERVER 2000
#4
是SQL SERVER 2000
#5
是SQL SERVER 2000
#6
打开字符串格式如下("Provider=SQLOLEDB;Data Source=XXXXXX\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=XXXXX","","",-1);
其中Data Source的值等于XXXXXX\\SQLEXPRESS,试试改为XP-201308221218\\\\SQLEXPRESS
怎么知道这条语句?如果是使用VS08,10,13的版本点击下面的看看
http://blog.csdn.net/bojie5744/article/details/34853807
其中Data Source的值等于XXXXXX\\SQLEXPRESS,试试改为XP-201308221218\\\\SQLEXPRESS
怎么知道这条语句?如果是使用VS08,10,13的版本点击下面的看看
http://blog.csdn.net/bojie5744/article/details/34853807
#7
上面打多了个\\
XP-201308221218\\SQLEXPRESS
XP-201308221218\\SQLEXPRESS
#8
现在的问题是可以查询记录,但是不可以用上面的方法插入一条记录
#9
是不是连接串的问题,试试这个:
_T("Driver={SQL Server};Server=%s;Database=%s;Uid=%s;Pwd=%s")
#10
连接串应该没有问题,因为用该串可以从数据库中读取数据,但是不能插入记录。
#11
是不是和配置数据源有关系!希望有帮助!
#12
是不是权限问题?
#13
pRst=pConn->Execute("INSERT INTO 菜单 (菜名,单价) VALUES ((_variant_t)m_addname,(_variant_t)m_addprice)",&RecordsAffected,adCmdText);
插入语句写错了吧
插入语句写错了吧
#1
是SQL SERVER 200X?
#2
先单步调试下到哪一步出错,然后说下哪里。可参考这些代码http://blog.csdn.net/bojie5744/article/details/30067969
#3
是SQL SERVER 2000
#4
是SQL SERVER 2000
#5
是SQL SERVER 2000
#6
打开字符串格式如下("Provider=SQLOLEDB;Data Source=XXXXXX\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=XXXXX","","",-1);
其中Data Source的值等于XXXXXX\\SQLEXPRESS,试试改为XP-201308221218\\\\SQLEXPRESS
怎么知道这条语句?如果是使用VS08,10,13的版本点击下面的看看
http://blog.csdn.net/bojie5744/article/details/34853807
其中Data Source的值等于XXXXXX\\SQLEXPRESS,试试改为XP-201308221218\\\\SQLEXPRESS
怎么知道这条语句?如果是使用VS08,10,13的版本点击下面的看看
http://blog.csdn.net/bojie5744/article/details/34853807
#7
上面打多了个\\
XP-201308221218\\SQLEXPRESS
XP-201308221218\\SQLEXPRESS
#8
现在的问题是可以查询记录,但是不可以用上面的方法插入一条记录
#9
是不是连接串的问题,试试这个:
_T("Driver={SQL Server};Server=%s;Database=%s;Uid=%s;Pwd=%s")
#10
连接串应该没有问题,因为用该串可以从数据库中读取数据,但是不能插入记录。
#11
是不是和配置数据源有关系!希望有帮助!
#12
是不是权限问题?
#13
pRst=pConn->Execute("INSERT INTO 菜单 (菜名,单价) VALUES ((_variant_t)m_addname,(_variant_t)m_addprice)",&RecordsAffected,adCmdText);
插入语句写错了吧
插入语句写错了吧