VC 调用Sqlserver2008存储过程

viccode 2014-07-24 07:47:56
最近做一个项目搞死人了。测试系统连接别人的数据库SQLSERVER2008 系统。请高手帮个忙。
任务就是,连接数据库,调用别人带参数的存储过程。我这边获取存储过程的值。
联系 :qq:332071278
我在VS2010扩展dll添加masdo15.dll 编译老是出这个错误。
:\testdll\messysobj00_new\release\msado15.tlh(126): error C2059: 语法错误:“__uuidof”
1>e:\testdll\messysobj00_new\release\msado15.tlh(126): error C2059: 语法错误:“)”
1>e:\testdll\messysobj00_new\release\msado15.tlh(126): error C2143: 语法错误 : 缺少“)”(在“;”的前面)
1>e:\testdll\messysobj00_new\release\msado15.tlh(127): error C2059: 语法错误:“__uuidof”
1>e:\testdll\messysobj00_new\release\msado15.tlh(127): error C2059: 语法错误:“)”

程序逻辑是MES站别管控。
[Database]
Server= 172.16.168.6
database= NPIMES
user= NPIMES
PWD= 123456
timeout=300
以下是建议的存储过程及功能说明,请查阅。 目前存储过程内容为空。后续所有的控制都可以通过这些存储过程实现。
Create Procedure uspGetUnitInfo
@xmlSerialNumber text, --'<SerialNumber><S Descr="SerialNumber">990123-1123</S></SerialNumber>'
@xmlStation text, --SampleString: '<StationInfo Description="BoardTester" />'
@UserID varchar(100) = NULL,
@EnterTime datetime,
@ExitTime datetime
As
功能说明:
1. 测试时,扫描产品SN,这个存储过程将去MES数据库检查SN的状态,如果合法,返回0,不合法,返回错误代码和错误描述,并且停止测试。
合法时,系统可以按一下格式返回MES系统数据;以下如:Partnumber、LineID、MEID等各自值。
<UNITINFO><GROUP name="Field">
<UNITDATA><NAME type="char">PartNumber</NAME><VALUE>T101-Product</VALUE></UNITDATA>
<UNITDATA><NAME type="char">LineID</NAME><VALUE>P1</VALUE></UNITDATA>
<UNITDATA><NAME type="char">MEID</NAME><VALUE>MEID0001</VALUE></UNITDATA>

……..
</GROUP></UNITINFO>

Procedure uspSaveTestResult
@strXmlTestResult text,
@EnterTime datetime,
@ExitTime datetime
As
功能说明:
1. 产品SN,通过合法性检查后,开始测试,测试完后,可以按一下格式把测试结果上传到MES系统,结果提交成功,返回值0,否则,返回错误代码和错误描述,产品不能进入下一工序。
<?xml version="1.0"?>
<BATCH TIMESTAMP="2014-12-13 00:12:39"><FACTORY NAME="Matsunichi" LINE="S11A" TESTER="S11CBT027" USER=""/><PRODUCT NAME="HUAWEI H30" REVISION=""/><REFS/><PANEL TIMESTAMP="2013-12-13 00:12:39"><DUT ID="021LXL7N1C054131" TIMESTAMP="2013-12-13 00:12:39" STATUS="PASS">
<GROUP NAME="MP2-SmarX1168-SPRTR6500-CBT" TIMESTAMP="2013-12-13 00:12:39" STATUS="PASS">
<TEST NAME="210011:Power on test:1" STATUS="PASS"/><TEST NAME="210012:HandoffBandSet[BC0_US]:1" STATUS="PASS"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:1018:full_power_mode]:1" STATUS="PASS" VALUE="2001" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:1018:low_power_mode]:1" STATUS="PASS" VALUE="1913" UNIT="" LOLIM="1600" HILIM="3100"/>
......
</GROUP>
<GROUP NAME="MP2-SmarX1168-SPRTR6501-CBT" TIMESTAMP="2013-12-13 00:12:39" STATUS="PASS">
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:98:full_power_mode]:1" STATUS="PASS" VALUE="2177" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:98:low_power_mode]:1" STATUS="PASS" VALUE="2090" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:202:full_power_mode]:1" STATUS="PASS" VALUE="2287" UNIT="" LOLIM="1600" HILIM="3100"/>
......
</GROUP>
<GROUP NAME="MP2-SmarX1168-SPRTR6502-CBT" TIMESTAMP="2013-12-13 00:12:39" STATUS="PASS">
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:202:low_power_mode]:1" STATUS="PASS" VALUE="2204" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:306:full_power_mode]:1" STATUS="PASS" VALUE="2203" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:306:low_power_mode]:1" STATUS="PASS" VALUE="2133" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="210013:Rx Cal DVGA val[BC0_US:410:full_power_mode]:1" STATUS="PASS" VALUE="2135" UNIT="" LOLIM="1600" HILIM="3100"/>
<TEST NAME="310209:Open Loop PowerTest:1" STATUS="PASS"/><TEST NAME="310000:Call Release:1" STATUS="PASS"/>
.......
</GROUP>

</DUT></PANEL></BATCH>

下面为测试系统扩展DLL模板
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// 如果使用 lpReserved,请将此移除
UNREFERENCED_PARAMETER(lpReserved);

if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("MesSysObj00.DLL 正在初始化!\n");

// 扩展 DLL 一次性初始化
if (!AfxInitExtensionModule(MesSysObj00DLL, hInstance))
return 0;

// 将此 DLL 插入到资源链中
// 注意: 如果此扩展 DLL 由
// MFC 规则 DLL(如 ActiveX 控件)隐式链接到
// 而不是由 MFC 应用程序链接到,则需要
// 将此行从 DllMain 中移除并将其放置在一个
// 从此扩展 DLL 导出的单独的函数中。使用此扩展 DLL 的
// 规则 DLL 然后应显式
// 调用该函数以初始化此扩展 DLL。否则,
// CDynLinkLibrary 对象不会附加到
// 规则 DLL 的资源链,并将导致严重的
// 问题。

new CDynLinkLibrary(MesSysObj00DLL);

}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0("MesSysObj00.DLL 正在终止!\n");

// 在调用析构函数之前终止该库
AfxTermExtensionModule(MesSysObj00DLL);
}
return 1; // 确定
}
//动态链接库输出函数
//创建对象并返回对象指针
extern "C" __declspec(dllexport) PVOID CreateObject(PSTR sName,PSTR sParam){return new CMesSysObj00(sName,sParam);};
extern "C" __declspec(dllexport) VOID GetObjectInfo(PSTR sClass,PSTR sVersion,PSTR sParamList)
{
sprintf(sClass,"CMesSysObj00");
sprintf(sVersion,"00");
sprintf(sParamList,"None");
};

CMesSysObj00::CMesSysObj00(const CString sObjectName,const CString sParam):CVirtualObject(sObjectName,sParam)
{
m_sClass = "CMesSysObj00";
m_sVersion +="00";

m_lstFuncInfo.AddTail(new FUNCINFO("MesInterface_SetPara","Initialize parameter","STR(Location),STR(Resource),STR(Operation),STR(User),STR(Password)","",128,&CMesSysObj00::_MesInterface_SetPara));
m_lstFuncInfo.AddTail(new FUNCINFO("ConnectServer","Log Server"," STR(),STR()","",1024,&CMesSysObj00::_ConnectServer));
}
BOOL CMesSysObj00::_MesInterface_SetPara(const CString sInput /* = CString */, CString &sOutput)
{
CHECKPARAMINIT(5,256);
CHECKSTR(0,sSite,"",0,64);
CHECKSTR(1,sResource,"",0,64);
CHECKSTR(2,sOperation,"",0,64);
CHECKSTR(3,sUser,"",0,64);

m_bSetPara = TRUE;
sOutput.Format("11111");
return TRUE;
}
...全文
529 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2014-08-01
  • 打赏
  • 举报
回复
BOF没有改名?
viccode 2014-07-24
  • 打赏
  • 举报
回复
引用 1 楼 jiangsheng 的回复:
最重要的一行没有贴出来 你的ado dll怎么import的,import的时候有没有忘记改名EOF和BOF?
#import "msado15.dll" no_namespace rename("EOF", "adoEOF")
蒋晟 2014-07-24
  • 打赏
  • 举报
回复
最重要的一行没有贴出来 你的ado dll怎么import的,import的时候有没有忘记改名EOF和BOF?
《企业级 VMware vSphere 6.7虚拟化技术配置与管理》课程共分为“上集”和“下集”两部分,本套视频为“上集”部分,从零基础讲起,由浅入深,是虚拟化入门与提高学习推荐课程。 通过本课程学习,可以全面、深入、系统掌握vSphere产品的规划、设计、安装、配置、管理等相关技能。结合课程实战,深入理解软件定义计算、存储、网络相关概念和运维技能。 《企业级 VMware vSphere虚拟化技术配置与管理》上集部分具体课程章节如下。 第1章 《vSphere技术基础》主要内容本章我们从理论上描述了虚拟化技术。第一部分重点讲解了什么是虚拟化技术;什么是vSphere。第二部分重点讲解了vSphere的设计思想,从虚拟化层、管理层、接口层进一步展开分析,使从业学习人员从技术层面对VMware vSphere进行深层次学习。 第2章 《VMware ESXi 安装和设置》主要内容本章我们重点讲解了两部分内容,第一部分主要讲解了安装ESXi程序的准备工作及安装过程。第二部分主要讲解了ESXi服务器的基本设置。这些内容是成为VMware工程师的必备技能,也是基础要求,希望各位朋友认真学习,踏实实践。 第3章 《vSphere Host Client管理单台ESXi主机》主要内容本章我们主要讲解了通过vSphere Host Client管理单台ESXi主机相关技能。包括vSphere Host Client的版本情况,基本理论知识;结合理论知识,重点给大家演示了使用vSphere Host Client对ESXi主机进行管理、对虚拟机进行管理、对网络进行管理、对存储进行管理等内容。操作内容比较多,希望朋友们认真理解理论知识的同时,踏实做好每一个实验,用实验检验理论,通过理论指导实践。 第4章 《vCenter Server 安装和设置》主要内容本章我们从理论上讲解了vCenter Server的安装类型、安装要求、安装分类、安装涉及到的组件和服务。在理论的基础上,我们分类分步进行了各种模型的构建,这些构建模型包括:* Windows环境部署具有嵌入式PSC的vCenter Server;* Windows环境部署具有外部PSC和外部SQL Server数据库的vCenter Server;* Linux环境部署具有嵌入式PSC的VCSA;* Linux环境部署具有外部PSC的VCSA。本章内容理论丰富,实验详细。希望朋友们认真学习理论说明,跟做章节中涉及的每一个实验,边看边做边总结。最终能够形成自己的知识。注释:PSC:亦指Platform Services ControllerVCSA:亦指vCenter Server Appliance 第5章 《vCenter Server基本配置和主机管理》 主要内容本章我们从理论上讲解了vSphere在数据中心的物理结构、软件组件、客户端使用界面、受管清单对象、可选vCenter Server组件和vCenter Server插件。在理论的基础上,详细介绍了vSphere Client的基本使用,包括对vCneter Server的管理操作、常规配置、高级属性定义、群集对象操作、vSphere标记和属性等。 第6章 《VMware vSphere 6.7 网络配置与管理》 主要内容软件定义网络,是虚拟化技术中的重要知识点。本章我们主要讲解了VMware vSphere网络的配置与管理。通过大量的理论和图例详细阐述了虚拟化环境中的网络模型和工作流程。课程中,我们对VMware vSphere虚拟化环境中的标准交换机和分布式交换机进行了分类讲解,并详细演示了涉及到的每一个实验。虽然理论和实践都做了比较详尽讲解,但对于初学者仍有一点的难度。克服困难的最好方式就是多做实验,验证理论。可谓实验三遍,其义自见。 第7章 《VMware vSphere 6.7 存储配置与管理》 主要内容本章我们通过理论结合实践的方式讲解了 VMware ESXi和 VMware vCenter Server提供的虚拟化和软件定义的存储技术。这些技术细节包括:将ESXi与iSCSI SAN配合使用;为VMware ESXi配置iSCSI共享存储;管理虚拟化环境中的存储设备;使用虚拟闪存读取缓存;在虚拟化环境中使用数据存储;虚拟化环境中的多路径和故障切换技术;裸设备映射技术;存储置备和空间回收技术;管理存储I/O资源。大家在学习过程中,可以以此为参考,构建自己的环境,逐步熟练课程中的术语和操作技能。 第8章 《VMware vSphere 6.7 虚拟机配置与管理》 主要内容本章我们对VMware vSphere 环境中部署虚拟机、部署 OVF 和 OVA 模板、使用内容库、配置虚拟机硬件、配置虚拟机选项、使用 vSphere vApp 管理多层应用程序、编辑虚拟机启动和关机设置等做了全面介绍。希望大家在掌握理论的基础上,参照课程实践部分,独立完成各个实验操作。 后续:在理论知识扎实,实践操作到位的情况下,《企业级 VMware vSphere虚拟化技术配置与管理》下集将深入讲解vSphere环境下的vMotion、DRS、High Available(HA)、fault tolerance(FT)、性能监控、安全备份等高可用性内容,敬请学习提高。 企业级 VMware vSphere 6.7虚拟化技术配置与管理(上集)视频课程:https://edu.csdn.net/course/detail/35162企业级 VMware vSphere 6.7虚拟化技术配置与管理(下集)视频课程:https://edu.csdn.net/course/detail/35171

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧