我的程序需要对同一个数据库中多个表分别进行操作,但是操作的内容都是一样的(不需要用到表之间的联接)。我的思想是编一个函数,比如modifytable(),然后分别调用modifytable(table1),modifytable(table2),modifytable(table3),等等。现在我已实现了针对一个表的modifytable()功能,请问如何实现对多表的操作呢?
CString CIconSet::GetDefaultSQL()
{
return _T("[dbo].[table1]");
}
我怎么添加别的表?在什么地方添加?
CString CIconSet::GetDefaultSQL()
{
return _T("[dbo].[table1]");
}
我怎么添加别的表?在什么地方添加?
解决方案 »
- 求助关于CDialogBar类的问题
- 一个SDK编程问题
- VC对话框上的按钮为何不能点击?
- 谁知道HTTP上传?
- 请问vs2005+msdn2005可以与vs6+msdn2001并存吗?
- 寻 visual assist 6.0.0.1090???
- 这里的搜索功能一点都不中用,管理人员难道不考虑改进一下吗?老出现服务器错误,同意的UP
- 高手来来来
- 自绘button后 ,按钮点不了了
- 用VC写程序,感觉无从下手怎么办???苦恼呀!!!:(
- typedef map<>....error C2143: syntax error : missing ';' before '<'
- 在Winsock网络通信中,请问如何实现面向无连接的通信方式?
或则在SQL SERVER中 查找sysobjects对象 中将所有的表找出
然后
for(i = 0; i < ncount; i++)
modifytable(tablename);
CString CIconSet::GetDefaultSQL()
{
return _T("[dbo].[table1]");
}
我怎么连接上其余的表,在什么地方写这个添加表的代码
CIconSet rs;
rs.Open( CRecordset::dynaset, "table1" );
...
rs.Close();
...
rs.Open( CRecordset::dynaset, "table2" );
...
rs.Close();
对于不确定的表,我是这样做的:
Cdatabase dbsource;
dbsource.open();//open不同的表
Crecordset rssource(&dbsource);
rssource进行表的操作;
参考源码:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") _ConnectionPtr g_pConnection;
//建立连接
g_pConnection.CreateInstance(__uuidof(Connection));//创建Connection对象
try
{
g_pConnection->Open("Provider=SQLOLEDB;SERVER=bigapple;DATABASE=(这里可以加上计算机名)AutoInspect;UID=sa;PWD=","","",adModeUnknown);
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}//插入数据,这里用的是存储过程(也可以改成SQL语句)
LRESULT CDiskArk::InsertRst(char* chrTableName)
{
_CommandPtr cmd;
LRESULT lrErr; try{
cmd.CreateInstance(__uuidof(Command));//"ADO.Command");
cmd->ActiveConnection = g_pConnection;
cmd->CommandText = "存储过程名";
cmd->CommandTimeout = 16;
cmd->CommandType=adCmdStoredProc;//(也可以改成SQL语句adCmdText)
//传送表名参数到存储过程
cmd->Parameters->Append(cmd->CreateParameter("TableName",adVarChar,adParamInput,sizeof(chrTableName),chrTableName));
//如上,传入其他参数
……
//执行
cmd->Execute(NULL,NULL,adCmdStoredProc); lrErr=0;
}
catch(_com_error e){
lrErr= 1;
}
cmd.Release(); return lrErr;
}
strSql = 表名 + 你的操作语句(操作一样的嘛,当然,表名在哪个位置肯定是固定的)
然后利用Command对象执行!
执行查询前调用m_sSQL = _T("[dbo].[yourtable]");修改GetDefaultSQL
CString CIconSet::GetDefaultSQL()
{
return m_sSQL;
}