!!!一个问好几天的问题,到底有没有人知道怎么做啊?应该不难吧?!!!

ares911 2003-09-11 01:48:49
我是一个DELPHI新手,所以遇到一些简单的问题也一筹莫展。谁能根据以下需求提供一份解决方案,最好是有完整的代码的。
我要用DELPHI做一个数据导入的接口程序。其需求如下:
软件提供了一个查找功能和一个导入功能,先根据用户输入的日期和编号(这个条件允许为空)去ACCESS数据库里查找出相应的数据,把编号列在一个列表框里,然后客户手动选择需要导入的电表编号到另一个列表框,单击“导入”,就把数据写入ORACLE库,并在第三个列表框列出来导入成功的编号。查找功能已经完成,CORBA也封装好了,就剩下写入数据这关键的一块儿,这个功能做不好,前面的东西都没有什么作用,要点:
1.用户编号是保存在access数据库里的;
2.用户的最终数据库不允许被我直接操作,提供了CORBA服务端和IDL接口文件;
3.用户通过这个接口程序手工导入最终数据库;
4.如果导入不成功,则报错,导入成功的写到一个列表框里;
5.调用的函数是封装好的CORBA提供的,按照我的理解就是他们给了我一个自定义的结构(代码在下面),我定义一个这样的结构,然后把从ACCESS里取出的数据全部赋值到这个结构里相应的数据项里去,然后导入到数据库里去?但是这一步应该具体如何去操作?有没有高手给指点一下?
比如:1.如何去定义这个结构?在哪个部分如何定义?应该注意些什么?
2.如何调用这个函数?语句怎样写?

用户提供的说明文档里,有一些关于调用CORBA函数的说明:
功能:提交电能表校验成绩单(校验结果上传)
成员函数:unsigned short AddMeterCheckDetails(in any MCDS);
本函数是any GetMeterCheckDetails(in wstring BarCode, in octet Times, out unsigned short Err);的逆操作,返回值是错误代码。

客户提供的自定义结构(标准的DELPHI源代码):
{电能表计数器类型}
TMeterCounterType = (mctSum, mctApex, mctVale, mctPar, mctInductive, mctCapacitive);
{总、峰、谷、平、感性(I,III象限)、容性(II,IV象限)示数}

{多功能电能表计数器定义}
TMeterCounter = record
DataSize: Word;{系统用}
Counters: array[Low(TMeterCounterType)..High(TMeterCounterType)] of Currency;
end;
PMeterCounter = ^TMeterCounter;

{电能表元组}
TMeterPhase = (phL, phA, phB, phC);{平衡, A, B, C}
TMeterphaseSet = set of TMeterPhase;

{电能表检测点误差}
PMeterCheckPoint = ^TMeterCheckPoint;
TMeterCheckPoint = record
Time : TDateTime; {8Byte电能表检测工单对应键}
Ord : Word; {2Byte电能表检测工单对应键}
Phase : TMeterPhase; {1Byte所属元组}
CurrentMultiple: Single; {4Byte电流倍数}
PowerFactor, {11Byte功率因数}
Error1, {11Byte误差1}
Error2, {11Byte误差1}
Average, {11Byte平均值}
Correct : String[10]; {11Byte修整值}
Bookmark : TBookmarkStr;{对应记录的标签,这是仅在算法中使用的临时变量}
end;

{工单类型. 未知待定(该值意味着除时间戳,条码,维修人之外的参数可再修改),正向有功,
正向无功,反向有功,反向无功}
TCheckBillKind = (cbkNone, cbkOE, cbkOI, cbkRE, cbkRI);

{电能表检测工单.有必要将每一测量类型的检测工单分立,这样,就可能迅速得知指定的计量
设备在指定的时间段内有多少检测工单}
PMeterCheckBillRec = ^TMeterCheckBillRec;
TMeterCheckBillRec = record
Time : TDateTime; {8Byte检测时间(键)}
Ord : Word; {2Byte区分同一秒内发生的多条记录的序号(键)}
BarCode : String[20]; {21Byte条码(唯一键组成部分)}
Kind : TCheckBillKind;{1Byte工单类型(唯一键组成部分)}
PortNo : Byte; {1Byte多用户表端口号(唯一键组成部分)}
BeforeAdjust : Boolean; {1Byte调前True/调后False(唯一键组成部分)}
Bill_ID : Cardinal; {4Byte工单号}
SetNo, {1Byte检定装置编号}
Tempture, {1Byte环境温度}
Humiture, {1Byte环境湿度}
EndureVoltage : Byte; {1Byte工频耐压}
StartupCurrent : SmallInt; {2Byte启动电流(mA)}
Voltage, {4Byte实际电压}
MaxStandardWarp1, {4Byte最大标准偏差估计值1}
MaxStandardWarp2: Single; {4Byte最大标准偏差估计值2}
SetModel, {21Byte检定装置型号}
Maintenance, {21Byte维修人}
Regulator, {21Byte校表员}
Checker, {21Byte核验员}
SpellChecker, {21Byte走字员}
Seal : String[20]; {21Byte走字员封印}
StartCounter, {66Byte计数器起始示数}
EndCounter : TMeterCounter; {66Byte计数器终止示数}
StartupOK, {1Byte启动电流合格标志}
UndercurrentOK, {1Byte潜动电流合格标志}
ErrorOK, {1Byte误差合格标志}
SpellOK : Boolean; {1Byte走字合格标志}
Bookmark : TBookmarkStr; {对应记录的标签,是仅在算法中使用的临时变量}
end;

{完整的电能表检测工单定义}
PMeterCheckDetail = ^TMetercheckDetail;
TMeterCheckDetail = record
Bill : TMeterCheckBillRec;
Points: array of TMeterCheckPoint;
end;

{电能表检测工单组.每个表可以有多个检测工单,如多功能表的检测工单包括有功和无功两
份或更多检测工单}
TMeterCheckDetails = array of TMeterCheckDetail;

{电能表检测工单时效类型}
TMeterCheckBillTimes = (cbNow, cbCurrent, cbHistory);
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitetiger8 2003-09-11
  • 打赏
  • 举报
回复
在数据库里提出问题吧。这里来的人是不是很少啊。
xiangtx 2003-09-11
  • 打赏
  • 举报
回复
不论是什么原因,这段代码还是太长了。
重新组织一下吧。
别人根本就不回把它看完,所以问题简单还是复杂也不会有人关心。
ares911 2003-09-11
  • 打赏
  • 举报
回复
这个问题其实并不长,也就是一个如何调用CORBA函数的问题罢了。
后面是人家提供的源代码,直接COPY就可以使用的,不提供出来怕看不明白这个问题啊!
xjlqlqlq 2003-09-11
  • 打赏
  • 举报
回复
将问题分解成多个小问题,多次问,更能被大家接受。。。
因为大多数人不愿看太长的问题,那样要花太长时间的。。。
xjlqlqlq 2003-09-11
  • 打赏
  • 举报
回复
太大太长,将问题分解成单个小问题,可能更容易被人接受。。。
一下太长,大多数人没有那么多时间慢慢看。。。
注意提问技巧。。。
考研数学150分是这样练成的主持人:亲爱的各位网友大家晚上好,欢迎光临海文考研大讲堂。海文教育集团传媒中心田振宇向您问好,今天我们又相聚在雄心启动未来—2007考研全程策划第三十二期节目中。今天我们为大家请到现场的是海文考研高级辅导专家王平老师,请他为大家讲讲考研数学150分是怎样炼成的。王平:各位网友大家晚上好,今天我为大家讲讲怎样能取得考研数学150分。其实分数只是我们说的一个概念,实质上是要取得好的成绩。考研数学作为一种选拔性考试,必然具有一定的难度。但是从近几年的试题来看,随着研究生招生规模的扩大,其整体难度已有所下降,考研数学越来越接近标准化考试,即试题越来越基础,越来越注重考察考生对基本概念、基本方法和基本性质的掌握程度,以及运算能力、逻辑推理能力等基本数学素质。 在备考之前,对考研数学的基本命题趋势和试题难度要有比较深刻的认识,根据自己对考研数学的定位,复习备考的主要策略:紧扣考纲,扎实基础,注重联系,加强训练。 第一,紧扣考纲。考研数学作为标准化考试,其命题范围有明确的规定,我的第一轮复习主要就是依据考试大纲,详细了解考试的基本要求,题型、类别和难度特点,准确定位。对于考试大纲未作要求的内容和知识点,我都没有看。因为从历年试题来看,偏题怪题越来越少,超纲题基本没有,因此没有必要在这上面浪费过多的时间和精力。 第二,扎实基础。考研数学所考察的重点就是考生的数学基本功,在根据考试大纲要求循序渐进地进行全面系统的复习的过程中,应该重点加强对基本概念、基本定理的理解,以及对基本方法的掌握。只有深入理解基本概念,牢牢掌握基本定理和公式,才能迅速而准确地找到解题的突破口和切入点,我们在考试中失分的一个重要原因就是对基本概念、定理记不全、记不牢,理解不准确,解题不得要领。 对于基本知识、基本定理和基本方法,关键在理解,而且理解还存在程度的问题,不能仅仅停留在看懂了的层次上,对一些易推导的定理,有时间一定要动手推一推,对一些基本问题的描述,特别是微积分中的一些术语的描述,一定要自己动手写一写,这些基本功都很重要,到临场时就可以发挥作用了。 第三,注重联系。考研试题中一般不太可能单独考察某个知识点,一般都是几个知识点结合起来考察考生的综合分析能力,因此复习时就应该注意知识点之间的联系,一是学科内部知识点的纵向联系,例如微积分中级数的求和一般都要用到微分或积分。同时还要注意三大学科之间的横向联系,例如概率试题通常都会用到微积分的知识等等。这些在综合练习时都是应该总结和注意的地方。 第四,加强训练。数学学科的特点,决定了数学考试要想取得好成绩就离不开大量有效的练习,俗话说熟能生巧,对于数学的基本概念、公式、结论等只有在反复练习中才能真正理解与巩固。数学试题虽然千变万化,其知识结构却基本相同,题型也相对固定,往往存在一定的解题套路,熟练掌握后既能提高正确率,又能提高解题速度。 数学考研题的重要特征之一就是综合性强、知识覆盖面广,一些稍有难度的试题一般比较灵活,对知识点串联的要求比较高,只有通过逐步的训练,不断积累解题经验,在考试时才更有机会较快找到突破口。平时有针对性的训练也有利于进一步理解并彻底弄清楚知识点的纵向与横向联系,转化为自己真正掌握了的东西,能够在理解的基础上灵活运用、触类旁通。 数学复习只是有一些值得注意的策略和方法,而没有一蹴而就的捷径,关键在个人的努力。当然,如果基础较弱,或者时间紧张,参加一定的考研辅导班也是不错的选择,因为大家从小到大,已经习惯了课堂的学习氛围。而且专业的考研辅导可以使你的复习更具方向性和目的性,能使你较快地发现自己原来的薄弱环节并予以补救。 总体的说就是要:1:注重基础,这是许多人可能都听别人所过但又不知如何入手的一点,一定要耐得住性子,冰冻三尺非一日之寒,看到别人成功辉煌的同时你也应该更多的去思考他(她)成功背后付出的努力。考研本身也是一个人综合素质的测定,一个系统的工程。 2:着力于思维的锻炼,它对于成绩的提高是整体性的,也是最可靠的途经。3:选好辅导书。我的题目肯定不算最多的,甚至相对许多人是比较少的,但有一点我看的书的种类是比较多的,数学的每一门我都分别选了一册我认为最好的辅导教材,这 样才是比较合理的选书方法,也能达到最好的复习效果,没有必要将赌注都压在一本书上,也没有必要一本书反反复复地看。 4:稳定心态,不论复习状态或效果是好是坏,都不要有太大的波动,这点上文中提到了比较多。 这中间经常有同学

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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