Delphi TadoQuery-参数类型转换
我将Jquery和Ajax参数从网页发送到我的Delphi Web服务器。这些参数将在select中使用,但只要我进入Delphi TadoQuery-参数类型转换,delphi,type-conversion,tadoquery,Delphi,Type Conversion,Tadoquery,我将Jquery和Ajax参数从网页发送到我的Delphi Web服务器。这些参数将在select中使用,但只要我进入TADOQ.Open我得到一个异常,它包含代码部分下面的消息 我是Delphi新手,所以我不容易理解如何使用UnicodeString、ansisting和String。我也不明白为什么我在任何地方都不用它,它却写着“double” 有没有简单的方法来解决这个问题?(代码小,易于卸载) 编辑:在调用searchselected()之前添加了进程 无法将类型(UnicodeStri
TADOQ.Open代码>我得到一个异常,它包含代码部分下面的消息
我是Delphi新手,所以我不容易理解如何使用UnicodeString
、ansisting
和String
。我也不明白为什么我在任何地方都不用它,它却写着“double”
有没有简单的方法来解决这个问题?(代码小,易于卸载)
编辑:在调用searchselected()之前添加了进程代码>
无法将类型(UnicodeString)的变体转换为(Double)
为什么你的约会是字符串而不是TDatetime?你的q是自相矛盾的。你说“但我一到TADOQ.Open”,你就呼叫Search.Open
。是哪一个?请始终张贴从项目中剪切和粘贴的实际代码。顺便说一句,对类实例(TADOQ
)使用T前缀,而不对自己的类类型(MyOwnClass
)使用T前缀会带来麻烦。看起来您的数字字符串变量不包含有效的数字(可能是空字符串)。哦,对不起,我将其编辑为特定代码(没有通用名称),还将类型更改为Integer和TDatetime | Marc-字符串(现在为int和datetime)为2666905(int)124062018.06 21:52:00(datetime)。我记录它完全是为了查看它是否是空字符串/值。如果您更改了问题,则会出现错误,因为delphi希望将您的日期字符串转换为TDateTime(这是double的别名类型)。。。
KoyoWebSqlReader:=CKoyoWebSqlReader.Create;
KoyoWebSqlReader.OpenConnection;
Response.ContentType:='application/json';
Txt:=KoyoWebSqlReader.SearchChosen(
StrToInt(SplitString(Request.ContentFields[0], '=')[1]),
StrToDateTime(SplitString(Request.ContentFields[1], '=')[1])
).toJsonString;
Response.Content:=Txt;
KoyoWebSqlReader.CloseConnection;
// -----
function CKoyoWebSqlReader.SearchChosen(TicketNumber:Integer; Start:TDateTime):CKoyoMeasurement;
var Search:TADOQuery;
var Measurement:CKoyoMeasurement;
begin
Measurement:=CKoyoMeasurement.Create;
Search:=TADOQuery.Create(nil);
Search.Connection:=Connection;
Search.SQL.Clear;
Search.SQL.Text:=
'SELECT * FROM Measurements WHERE TicketNumber = :TicketNumber AND Start = :Start;';
Search.Parameters.ParamByName('TicketNumber').Value:=TicketNumber;
Search.Parameters.ParamByName('Start').Value:=Start;
try
Search.Open;
// Fill Measurement
except on EX:Exception do
begin
// Log Exception
end;
end;
Search.Close;
Result:=Measurement;
end;