我们面临数据类型双重比较的问题:
if(p > pmax) then
begin
Showmessage('');
end
Run Code Online (Sandbox Code Playgroud)
如果两个值都是100(p = 100和pmax = 100),那么它也会进入if子句.
我正在将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 6迁移到Delphi 2010,之前我们使用BDE引擎从Delphi 6连接到Sybase数据库.我们发现Delphi 2010不支持BDE.
我们正在尝试使用dbexpress,但是我们无法捕获Sybase抛出的异常(引发错误).
如果除了dbexpress之外还有其他驱动程序可以从Delphi 2010连接到Sybase数据库,请告诉我.
谢谢.
此致,AS
当我们使用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 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存在这个问题
我正在尝试将字符串转换为浮点数,当我传递单个字符时它会给出异常.
FMandateSize := StrToFloat(EditMandateSize.Text);
Run Code Online (Sandbox Code Playgroud)
任何想法如何将单个char转换为float?
delphi ×6
delphi-2010 ×5
sybase-ase ×2
dbexpress ×1
delphi-xe2 ×1
devart ×1
drivers ×1
sybase ×1
tdatetime ×1
types ×1
unidac ×1
wsdl ×1