XE7 DataSnap存储过程传递参数问题?

CB1013 2015-05-18 12:14:31
服务端:
procedure TServerMethods1.GuestQry(Act, Rno, GName, Gtype, sArr, eArr, sLea,
eLea, SaleId, Birthday, Sta, Bal, Ydr, Rtype, T: String);
begin
with GuestQuery do
begin
Close;
Parameters.ParamByName('@Account').Value :=Act;
Parameters.ParamByName('@RoomNo').Value :=Rno;
Parameters.ParamByName('@Name').Value :=GName;
Parameters.ParamByName('@GuestType').Value :=Gtype;
Parameters.ParamByName('@sArrDate').Value :=sArr;
Parameters.ParamByName('@eArrDate').Value :=eArr;
Parameters.ParamByName('@sLeaDate').Value :=sLea;
Parameters.ParamByName('@eLeaDate').Value :=eLea;
Parameters.ParamByName('@SaleId').Value :=SaleId;
Parameters.ParamByName('@Birthday').Value :=Birthday;
Parameters.ParamByName('@State').Value :=Sta;
Parameters.ParamByName('@Balance').Value :=Bal;
Parameters.ParamByName('@Ydr').Value :=Ydr;
Parameters.ParamByName('@RoomType').Value :=Rtype;
Parameters.ParamByName('@T').Value :=T;
Prepared;
Open;
end;
end;
客户端:
procedure TForm1.Button1Click(Sender: TObject);
var
ReturnDataSet: OleVariant;
begin
SQLConnection1.Open;
FParam := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
ReturnDataSet := FParam.GuestQry('','','','','','','','','','','I','','','','1'); //这句报错
ClientDataSet1.Data:=ReturnDataSet;
ClientDataSet1.Open;
finally
FreeAndNil(FParam);
SQLConnection1.Close;
end;
end;
错误信息: E2010 Incompatible types: 'OleVariant' and 'procedure, untyped pointer or untyped parameter'
刚接触不知这种方法好不好,有没有更好的方法。还请各位大哥帮忙
...全文
402 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
13427617410 2015-08-11
  • 打赏
  • 举报
回复
楼主 可否加我和我讲下你是怎么实现的 ? 我QQ187294890
CB1013 2015-05-19
  • 打赏
  • 举报
回复
问题已解决, 谢谢
lyhoo163 2015-05-18
  • 打赏
  • 举报
回复
1、服务器方法,无返回值。是一个过程(不是函数)。 procedure TServerMethods1.GuestQry(Act, Rno, GName, Gtype, sArr, eArr, sLea, eLea, SaleId, Birthday, Sta, Bal, Ydr, Rtype, T: String); 2、客户端调用该方法,要求有返回值,就要出错了。 ReturnDataSet := FParam.GuestQry('','','','','','','','','','','I','','','','1'); 改直接调用即可: FParam.GuestQry('','','','','','','','','','','I','','','','1');
CB1013 2015-05-18
  • 打赏
  • 举报
回复
在DELPHI2007下没问题 if act<>'' then GuestQuery.Parameters.ParamByName('@Account').Value :=act else GuestQuery.Parameters.ParamByName('@Account').Value :=Null; 现在改成DELPHI XE7下 if act<>'' then GuestQuery.Parameters.ParamByName('@Account').Value :=act else GuestQuery.Parameters.ParamByName('@Account').Value :=Null;//一输入NULL就提示未定义
lyhoo163 2015-05-18
  • 打赏
  • 举报
回复
是否参数赋值时,nil nill混淆。
CB1013 2015-05-18
  • 打赏
  • 举报
回复
现在改成: function TServerMethods1.GuestQry(Act, Rno, GName, Gtype, sArr, eArr, sLea, eLea, SaleId, Birthday, Sta, Bal, Ydr, Rtype, T: String): OleVariant; 再问下: GuestQuery.Parameters.ParamByName('@Account').Value :=Null;//提示Null没定义
源码下载地址: https://pan.quark.cn/s/0d6e3002ba51 ### IR2110中文资料知识点详述 #### 一、概述 IR2110是一种专为脉冲宽度调制应用而设计的高性能驱动集成电路,在各类功率转换设备中具有广泛的应用,特别是在需要实现隔离驱动的场景下表现出色。该芯片融合了光电隔离与电磁隔离的优势,能够达成快速响应并保持较小的物理尺寸,尤其适合用于中小功率的变换装置。 #### 二、IR2110内部结构与特点 **1. 内部结构** - **封装形式**:采用DIP14引脚封装。 - **内部组成**:由逻辑输入单元、电平平移单元以及输出保护单元这三个主要部分构成。 - **悬浮电源**:借助自举电路实现,使得高端工作电压最高能够达到500V,支持±50V/ns的电压变化率。 - **工作电压范围**:逻辑电源电压范围为5~15V,输出电源端电压范围为10~20V,易于与其他逻辑电平进行匹配。 - **工作频率**:最高可达到500kHz。 - **功耗**:在15V条件下静态功耗仅为116mW。 - **延迟时间**:导通延迟120ns,关断延迟94ns。 - **峰值输出电流**:图腾柱输出峰值电流为2A。 **2. 特点** - **独立输入通道**:具备独立的低端和高端输入通道配置。 - **兼容性**:逻辑电源地与功率地之间允许±5V的偏移量,便于与TTL或CMOS电平进行匹配。 - **自举电源**:内置自举电源电路,有效减少驱动电源的数量,从而简化电路设计。 - **高dv/dt能力**:具有较强的dv/dt抑制能力,适合高频开关应用。 - **低功耗**:工作状态下功耗较低,有利于提升整体效率。 #### 三、高压侧...

2,508

社区成员

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

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