下边是我的一个ISAPI程序,老是出错,那个高手能解决我就真的服了你了@@!!注:数据库中两个字段,id,username if (!AfxOleInit())
{
*pCtxt << _T("OLE initialization failed."); }
else
{
_RecordsetPtr m_pRs;
CString m_strConnection;
CString m_strCmdText; m_strConnection = _T("Provider=SQLOLEDB.1;Password=322322;Persist Security Info=True;User ID=sa;Initial Catalog=test_user;Data Source=192.168.1.11");
m_strCmdText = _T("my_user");
try
{ m_pRs.CreateInstance(__uuidof(Recordset));
m_pRs->CursorLocation = adUseClient;
m_pRs->Open((LPCTSTR)m_strCmdText,
(LPCTSTR)m_strConnection, adOpenStatic,
adLockOptimistic, adCmdTableDirect); long index[1];
VARIANT flds,vals; //声明两个安全数组变量
flds.vt=VT_ARRAY|VT_VARIANT; //定义安全数组类型
vals.vt=VT_ARRAY|VT_VARIANT;
SAFEARRAYBOUND bound; //声明安全数组边界变量
bound.cElements=2; //定义安全数组元素个数
bound.lLbound=0; //定义安全数组最小下标
COleVariant fld[1],val[1]; //用于保存字段名称和字段值
// UpdateData(true);//将对话框数据传送给对应的变量
//设置字段名称数组元素值
fld[0]="username";
fld[1]="id";
//设置字段值数组元素值
val[0]=pstrname;
val[1]="111";
//创建安全数组
flds.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);
vals.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);
for(int i=0;i<2;i++){
index[0]=i;
::SafeArrayPutElement(flds.parray,index,&fld[i]); //将字段名称存入安全数组
::SafeArrayPutElement(vals.parray,index,&val[i]); //将字段值称存入安全数组
}
m_pRs->AddNew(&flds,&vals);//使用安全数组添加新记录
*pCtxt <<_T("成功添加记录!");
}
catch (_com_error &e)
{
*pCtxt <<e.Description(); }
{
*pCtxt << _T("OLE initialization failed."); }
else
{
_RecordsetPtr m_pRs;
CString m_strConnection;
CString m_strCmdText; m_strConnection = _T("Provider=SQLOLEDB.1;Password=322322;Persist Security Info=True;User ID=sa;Initial Catalog=test_user;Data Source=192.168.1.11");
m_strCmdText = _T("my_user");
try
{ m_pRs.CreateInstance(__uuidof(Recordset));
m_pRs->CursorLocation = adUseClient;
m_pRs->Open((LPCTSTR)m_strCmdText,
(LPCTSTR)m_strConnection, adOpenStatic,
adLockOptimistic, adCmdTableDirect); long index[1];
VARIANT flds,vals; //声明两个安全数组变量
flds.vt=VT_ARRAY|VT_VARIANT; //定义安全数组类型
vals.vt=VT_ARRAY|VT_VARIANT;
SAFEARRAYBOUND bound; //声明安全数组边界变量
bound.cElements=2; //定义安全数组元素个数
bound.lLbound=0; //定义安全数组最小下标
COleVariant fld[1],val[1]; //用于保存字段名称和字段值
// UpdateData(true);//将对话框数据传送给对应的变量
//设置字段名称数组元素值
fld[0]="username";
fld[1]="id";
//设置字段值数组元素值
val[0]=pstrname;
val[1]="111";
//创建安全数组
flds.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);
vals.parray=::SafeArrayCreate(VT_VARIANT,1,&bound);
for(int i=0;i<2;i++){
index[0]=i;
::SafeArrayPutElement(flds.parray,index,&fld[i]); //将字段名称存入安全数组
::SafeArrayPutElement(vals.parray,index,&val[i]); //将字段值称存入安全数组
}
m_pRs->AddNew(&flds,&vals);//使用安全数组添加新记录
*pCtxt <<_T("成功添加记录!");
}
catch (_com_error &e)
{
*pCtxt <<e.Description(); }
解决方案 »
- 怎么把CString通过TRACE输出到DEBUG窗口
- 如何创建一个txt文件
- 请问怎样通过单击控件改变界面?
- UDP服务器Console版SetTimer()定时器定时重发的使用问题,在线等候
- 请问调用哪个API能获得Widnow 的可用物理内存?
- 请问:怎样让CFileDialog打开的对话框同时显示两种类型的文件?
- Com接口问题,希望指点!
- 请问大家:ATL里怎么设鼠标?
- WIN98下能读的光盘到了WIN2000/NT下居然读不出来!(我的光盘是刻录的)
- 问个菜问题:写bmp文件
- TreeCtrl和ListCtrl的组合问题
- 不用findwindow 和CreateMutex,还有什么办法不让一个实例连续运行2次
catch (_com_error &e)
{
*pCtxt < <e.Description(); }改成:
catch (_com_error &e)
{
AfxMessageBox(e.Description()); } 然后编译运行看看报什么错误??