【发布时间】:2013-12-06 19:06:53
【问题描述】:
我正在尝试将 Advantage Database 文档中的示例代码转换为 Delphi,但似乎无法正确声明变量,从 varType 开始,也无法计算出 MAX_STR_LEN(常量、函数、其他?)。
这是示例中的代码:
UNSIGNED32 DoDates( void )
{
ADSHANDLE hTable;
UNSIGNED16 usLength;
UNSIGNED8 aucDOB[MAX_STR_LEN+1];
...
usLength = MAX_STR_LEN+1
AdsGetDate( hTable, "DOB", aucDOB, &usLength );
...
}
我试过的Delphi代码是:
procedure TForm1.fixARInvoiceEntryHeaderDates;
var
tableHandle:ADSHandle;
aucDOB:pansichar;
usLength:punsigned16;
begin
...
AdsGetDate(
tableHandle,
'inv_date',
aucDOB,
&usLength);
...
end;
【问题讨论】:
-
顺便说一句,您是否知道 Advantage 有一组 Delphi 组件,它们是
TDataSet的后代?它们使您可以使用普通的表或查询操作并使用Table.FieldByName('DOB').AsDateTime访问字段。它们可从 Advantage 网站免费获得。 -
好的,谢谢。我这样做只是为了修复损坏的日期值(TAdsTable 函数会导致 5095 错误)。
标签: delphi advantage-database-server