小编SSE*_*SSE的帖子

如何在delphi中比较double?

我们面临数据类型双重比较的问题:

if(p > pmax) then
begin
  Showmessage('');
end
Run Code Online (Sandbox Code Playgroud)

如果两个值都是100(p = 100和pmax = 100),那么它也会进入if子句.

delphi types

28
推荐指数
2
解决办法
1万
查看次数

Delphi XE2 HTTPRIO无法检索服务/端口的URL端点

我正在将Delphi 2007程序转换为Delphi XE2并出现以下错误消息:

无法从WSDL"http:// ....."检索服务/端口"/"的URL端点

我连接的服务是用Delphi 2007编写的.

在2007年,它编译并运行没有问题.在具有相同代码的XE2上,它会因错误而丢失.

我尝试使用新的WSDL导入器重新导入接口,默认设置但没有快乐.

我也尝试过设置端口和服务名称,错误仍然存​​在.不确定哪些信息有用,但据我所知它是连接.

这是我正在使用的方法的操作

<operation name="CheckRegistration">
  <soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
  <input>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"     namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
  </input>
  <output>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
  </output>
</operation> 
Run Code Online (Sandbox Code Playgroud)

这是消息:

<message name="CheckRegistration10Request">
  <part name="centreId" type="xs:int"/>
  <part name="centreName" type="xs:string"/>
  <part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
  <part name="return" type="xs:boolean"/>
</message>
Run Code Online (Sandbox Code Playgroud)

除了导入WSDL之外,抛出HTTPRIO并使用调用方法

(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
Run Code Online (Sandbox Code Playgroud)

我不认为我正在做任何其他事情,因为我说同样的代码适用于Delphi 2007.

delphi wsdl webservice-client delphi-2010 delphi-xe2

7
推荐指数
1
解决办法
7123
查看次数

有没有像REPLACE这样的功能?

是否有任何函数可以替换ASE中的单词?

sybase-ase

4
推荐指数
1
解决办法
2万
查看次数

适用于Delphi 2010的Sybase驱动程序

我们正在从Delphi 6迁移到Delphi 2010,之前我们使用BDE引擎从Delphi 6连接到Sybase数据库.我们发现Delphi 2010不支持BDE.

我们正在尝试使用dbexpress,但是我们无法捕获Sybase抛出的异常(引发错误).

如果除了dbexpress之外还有其他驱动程序可以从Delphi 2010连接到Sybase数据库,请告诉我.

谢谢.

此致,AS

delphi drivers delphi-2010 sybase-ase

3
推荐指数
1
解决办法
1630
查看次数

在Delphi 2010中编码时间问题

当我们使用EncodeTime函数EncodeTime(wHour,wMinute,wSecond,wMilliseconds)时,它不会将millisec值赋给Result.

我们在下面用它来编码日期和时间

Result := EncodeDate(wYear, wMonth, wDay) +
  EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
Run Code Online (Sandbox Code Playgroud)

我们要解析为DateTime的String具有值,Apr 10 2008 7:21:31:460PM但在编码之后我们得到输出为10/04/2008 07:21:31.

结果仅包含HH:MM:SS值而不包含毫秒值.

如果有格式化值并将其与millisec一起存储在变量中,请告诉我们. *******************我正在尝试的功能*************

function DateTimeParser(theString :string):TDateTime;
var wYear,wMonth,wDay,wHour, wMinute, wSecond,wMilliseconds : Word  ;
Date,Month,Med :String;
Time : TDateTime;
testtime,testtime1 : TSystemTime;
var  myDateTime : TDateTime;
begin
 Month := Copy(theString,1,3) ;
 if Month ='Jan' then wMonth := 01 …
Run Code Online (Sandbox Code Playgroud)

delphi dbexpress tdatetime delphi-2010

2
推荐指数
1
解决办法
1993
查看次数

使用Sybase 12.5客户端库的Unidac组件中是否出现Raise错误

我们在Delphi 10中使用Unidac Stored Proc组件和Sybase 12.5驱动程序

在Sybase proc我们提出错误如下,我发现它正在重新启动但它没有显示错误消息.我没有在Unidac或任何其他问题?

if @number <> null
 begin
  select @errmsg = 'Already active for location ' 
  raiserror 20001 @errmsg 
   return 1 
 end 
Run Code Online (Sandbox Code Playgroud)

我在delphi中执行storedproc,如下所示

try 
  ExecProc; 
  except on E:Exception do 
    begin 
     ErrorMsg(EDatabaseError(ExceptObject).Message,0); 
     Exit; 
   end;
Run Code Online (Sandbox Code Playgroud)

但我们仍然无法捕获异常.

即使我尝试过如下.

try 
  UniStoredProc.StoredProcName := 'test'; 
  UniStoredProc.ExecProc; 
except 
  on E:EUniError do 
    ShowMessage(E.Message); 
end
Run Code Online (Sandbox Code Playgroud)

相同的代码适用于Sybase 15客户端库

我们使用Sybase 15服务器和Sybase 12.5 Client库连接到服务器,这会有问题吗?之前我们使用BDE和Sybase 12.5客户端库,所以我们没有遇到任何问题,现在我们发现unidac存在这个问题

delphi sybase devart delphi-2010 unidac

1
推荐指数
1
解决办法
1751
查看次数

如何在delphi 10中将单个空格转换为float

我正在尝试将字符串转换为浮点数,当我传递单个字符时它会给出异常.

FMandateSize := StrToFloat(EditMandateSize.Text);
Run Code Online (Sandbox Code Playgroud)

任何想法如何将单个char转换为float?

delphi delphi-2010

-1
推荐指数
1
解决办法
916
查看次数