2665|2

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

RDA的一个例子 pull方法成功,而push不行 [复制链接]

//向服务器提交数据
void CRDAExamDlg::OnBtnpush()
{
        ISSCERDA*pCERDA = NULL;
        BSTR bStr = NULL;
        BSTR bConnectStr = NULL;
        BSTR bLocalConnectStr = NULL;
        BSTR bLocalTableName = NULL;

        SYSTEMTIME systemtime;                                        // 系统时间
        double timeTotal;                                        // 总共消耗的时间
        __int64        timeStart =0;                                // 开始操作时的时间
        __int64        timeStop;                                        // 结束操作时的时间
        WCHAR wszBuffer[512];
       
           CDlgPush dlgPush;
    ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
        if (dlgPush.DoModal())
        {
                //得到pCERDA接口
                HRESULT hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA);
                ASSERT(hr == S_OK);
                ASSERT(pCERDA != NULL);
                //1、设置Internet URL
                bStr = SysAllocString(dlgPush.m_internetURL);
                pCERDA->put_InternetURL(bStr);
                SysFreeString(bStr);
               
                //2、设置Internet userName
                bStr = SysAllocString(dlgPush.m_internetUsername);
                pCERDA->put_InternetLogin(bStr);
                SysFreeString(bStr);
               
                //3、设置Internet password
                bStr = SysAllocString(dlgPush.m_internetPassword);
                pCERDA->put_InternetPassword(bStr);
                SysFreeString(bStr);
               
               
                //4、设置服务器连接串
                bConnectStr = SysAllocString(dlgPush.m_connectStr);
               
                //5、设置本地数据库连接串
                bLocalConnectStr = SysAllocString   (dlgPush.m_localConnectStr);  
                pCERDA->put_LocalConnectionString(bLocalConnectStr);
                SysFreeString(bStr);
               
                //6、设置本地表名
                bLocalTableName = SysAllocString(dlgPush.m_localTableName);
               
               
                //记录向服务器提交数据前的时间
                GetLocalTime(&systemtime);
                SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStart);
               
              //向服务器提交数据
                hr = pCERDA->Push(bLocalTableName,bConnectStr, BATCHINGON);
               
                SysFreeString(bLocalTableName);
                SysFreeString(bConnectStr);
               
                if (SUCCEEDED(hr))
                {
                        //记录向服务器提交数据后的时间
                        GetLocalTime(&systemtime);
                        SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStop);
                     //记录向服务器提交数据总的时间
                        timeTotal = ((double)(timeStop - timeStart)/10000000);
                        swprintf(wszBuffer, _T("向服务器提交数据成功\\r\\n\\r\\总共消耗 = %8.3f秒"), timeTotal);
                        AfxMessageBox(wszBuffer);
                }
                else
                {       
                        //显示向服务器提交数据失败信息
                        ISSCEErrors  *pISSCEErrors = NULL;
                        if(SUCCEEDED(hr = pCERDA->get_ErrorRecords(&pISSCEErrors)))
                        {
                                ShowErrors(pISSCEErrors);
                                pISSCEErrors->Release();
                        }
                }
                //释放远程访问接口
                pCERDA->Release();
        }
}


这是EVC高级编程书上的RDA例子里的push程序,从pc机到WCE设备上,选了Trackon跟踪,pull方法成功,但从WCE设备到pc机上push不行。不知道为什么执行后,显示“向服务器提交数据成功\r\n\r\总共消耗 =0.000秒”,又没有报错提示。我用的表是从PC机pull到WCE设备上的数据库表,为什么push不成功呢?麻烦各位给瞧瞧。着急!!

最新回复

问题解决了。好的,谢谢wbcp2000,我会考虑的。  详情 回复 发表于 2008-6-6 13:07
点赞 关注

回复
举报

57

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
  push使用时,对表的结构有严格的要求,我记得EVC高级编程,有关于这些的提醒,你可以查一下。

  另外,给楼主一个强烈的建议,实际应用开发中,不要使用RDA技术,我个人觉得用来做项目,不是很稳定。

  
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
问题解决了。好的,谢谢wbcp2000,我会考虑的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表