c++远程连接mysql数据库,读取数据再将其导入到另外一个数据库中,怎么实现,详细问题请看补充 100
我在本地编写代码实现连接远程服务器中的Mysql数据库,并将数据库中的记录读取出来,然后在将读取出来的数据导入到本地的数据库中,这个过程使用c++代码怎么来实现啊!!读取...
我在本地编写代码实现连接远程服务器中的Mysql数据库,并将数据库中的记录读取出来,然后在将读取出来的数据导入到本地的数据库中,这个过程使用c++代码怎么来实现啊!!
读取远程数据库中的记录时应该读取呢,一个数据库中有好多张表,怎么实现读取每张表的记录呢?请高手们指点 最好能给代码 详细点 必有重谢!!!
想实现循环插入数据\ 循环次数就是记录条数 现在要实现用getfields 或者别的 自动获取记录条数 展开
读取远程数据库中的记录时应该读取呢,一个数据库中有好多张表,怎么实现读取每张表的记录呢?请高手们指点 最好能给代码 详细点 必有重谢!!!
想实现循环插入数据\ 循环次数就是记录条数 现在要实现用getfields 或者别的 自动获取记录条数 展开
2个回答
展开全部
这个过程不复杂的,但是你需要使用mysql的c++ api库,在mysql的网站上就有下载,代码我给不了,请楼下的高手出招吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈刚好我有些你能用上,前断时间做测试用的,呵呵,不过不知道怎么样导如另外一个库。呵呵。
第一个链接数据库
BOOL CSeverConn::SeverConnection(CString Sname,CString Uname,CString Pword)
{
if (FAILED(this->m_Conn.CreateInstance("ADODB.Connection")))
{
AfxMessageBox("Create Instance failed!");
return FALSE;
}
//m_Conn->CursorLocation=adUseClient;
CString constr="Provider=SQLOLEDB.1;Data Source="+Sname;//192.168.2.157";//;InitialCatalog=ATCDeclareDB";
// CString UserID=Uname,Password=Pword;
HRESULT hr=m_Conn->Open((_bstr_t)constr,(_bstr_t)Uname,(_bstr_t)Pword,-1);//adModeRead);
if(FAILED(hr))
{
AfxMessageBox("Can not Connected SQL");
return FALSE;
}
return TRUE;
}
然后读取数据(用——commandptr查询返回结果集recordptr)
if(!m_Conn->GetState())return NULL;
_CommandPtr cmd;
m_Conn->Execute ( _bstr_t(changeDB),NULL,adCmdText|adExecuteNoRecords );
HRESULT hr=cmd.CreateInstance(__uuidof(Command));
if(FAILED(hr))
{
AfxMessageBox("Can not Execute SQL");
return NULL;
}
cmd->ActiveConnection=m_Conn;
cmd->CommandText="select * from 表名";//如果不知道表名同样/*用这种方法查系统表 -- SELECT name FROM sysobjects WHERE (OBJECTPROPERTY(id, N'IsUserTable') = 1)*/
cmd->CommandType=adCmdText;
cmd->Parameters->Refresh();
_RecordsetPtr Record;//返回的结果在这里啦
Record=cmd->Execute(NULL,NULL,adCmdUnknown);
_variant_t temp_val;
while(!Record->GetadoEOF())//循环遍历结果集
{
temp_val = Record->GetCollect("name");
CString temp_str;
temp_str=(char *)_bstr_t(temp_val);//这里得到第一行的名字,哈哈
Record->MoveNext();
}
哈哈,给分啊,注释都给你写啦,!!~~
第一个链接数据库
BOOL CSeverConn::SeverConnection(CString Sname,CString Uname,CString Pword)
{
if (FAILED(this->m_Conn.CreateInstance("ADODB.Connection")))
{
AfxMessageBox("Create Instance failed!");
return FALSE;
}
//m_Conn->CursorLocation=adUseClient;
CString constr="Provider=SQLOLEDB.1;Data Source="+Sname;//192.168.2.157";//;InitialCatalog=ATCDeclareDB";
// CString UserID=Uname,Password=Pword;
HRESULT hr=m_Conn->Open((_bstr_t)constr,(_bstr_t)Uname,(_bstr_t)Pword,-1);//adModeRead);
if(FAILED(hr))
{
AfxMessageBox("Can not Connected SQL");
return FALSE;
}
return TRUE;
}
然后读取数据(用——commandptr查询返回结果集recordptr)
if(!m_Conn->GetState())return NULL;
_CommandPtr cmd;
m_Conn->Execute ( _bstr_t(changeDB),NULL,adCmdText|adExecuteNoRecords );
HRESULT hr=cmd.CreateInstance(__uuidof(Command));
if(FAILED(hr))
{
AfxMessageBox("Can not Execute SQL");
return NULL;
}
cmd->ActiveConnection=m_Conn;
cmd->CommandText="select * from 表名";//如果不知道表名同样/*用这种方法查系统表 -- SELECT name FROM sysobjects WHERE (OBJECTPROPERTY(id, N'IsUserTable') = 1)*/
cmd->CommandType=adCmdText;
cmd->Parameters->Refresh();
_RecordsetPtr Record;//返回的结果在这里啦
Record=cmd->Execute(NULL,NULL,adCmdUnknown);
_variant_t temp_val;
while(!Record->GetadoEOF())//循环遍历结果集
{
temp_val = Record->GetCollect("name");
CString temp_str;
temp_str=(char *)_bstr_t(temp_val);//这里得到第一行的名字,哈哈
Record->MoveNext();
}
哈哈,给分啊,注释都给你写啦,!!~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询