【发布时间】:2010-03-22 03:32:09
【问题描述】:
我对delphi win 32编程了解不多,但希望有人能回答我的问题。
我将重复的 l_sGetUniqueIdBuffer 保存到我想要避免的数据库中。
行之间的 l_sGetUniqueIdBuffer 实际上是不同的(l_sAuthorisationContent 的值是 xml,我可以看到调用 getUniqueId 生成的不同值)。这个问题是间歇性的(重复很少......)行之间的更新日期之间只有毫秒的差异。
给定:
(剪掉了多余的代码)
var
l_sGetUniqueIdBuffer: PChar;
FOutputBufferSize : integer;
begin
FOutputBufferSize := 1024;
...
while( not dmAccomClaim.ADOQuClaimIdentification.Eof ) do
begin
// Get a unique id for the request
l_sGetUniqueIdBuffer := AllocMem (FOutputBufferSize);
l_returnCode := getUniqueId (m_APISessionId^, l_sGetUniqueIdBuffer, FOutputBufferSize);
dmAccomClaim.ADOQuAddContent.Active := False;
dmAccomClaim.ADOQuAddContent.Parameters.ParamByName('pContent').Value := (WideString(l_sAuthorisationContent));
dmAccomClaim.ADOQuAddContent.Parameters.ParamByName('pClaimId').Value := dmAccomClaim.ADOQuClaimIdentification.FieldByName('SB_CLAIM_ID').AsString;
dmAccomClaim.ADOQuAddContent.Parameters.ParamByName('pUniqueId').Value := string(l_sGetUniqueIdBuffer);
dmAccomClaim.ADOQuAddContent.ExecSQL;
FreeMem( l_sAuthorisationContent, l_iAuthoriseContentSize );
FreeMem( l_sGetUniqueIdBuffer, FOutputBufferSize );
end;
end;
我想我需要知道,l_sGetUniqueIdBuffer 中的值是否会为每一行重置??
【问题讨论】:
-
重复项是实际的唯一 ID 还是空字符串?
-
使用相同的 m_APISessionID 调用两次 getUniqueID 会返回什么?