Seite 1 von 1

AdsDDSetArticleProperty Parameter

Verfasst: Mo, 27. Nov 2023 11:33
von Udo
Hallo,
zur Erzeugung eines Data Dictionarys habe ich ein Xbase Tool.
Jetzt möchte ich gern die Funktion AdsDDSetArticleProperty() nutzen, um den Schalter ADS_DD_ARTICLE_UPDATE_MERGE zu setzen.
In der Doku steht dazu:

Code: Alles auswählen

UNSIGNED32 ENTRYPOINT AdsDDSetArticleProperty( ADSHANDLE hDictionary,
UNSIGNED8 *pucPublicationName,
UNSIGNED8 *pucObjectName,
UNSIGNED16 usPropertyID,
VOID *pvProperty,
UNSIGNED16 usPropertyLen );
In meinem Tool schreibe ich

Code: Alles auswählen

EXTERN UINTEGER AdsDDSetArticleProperty(;
                  nHdl            AS LONG,;
                  cPubname        AS STRING,;    
                  cTabName        AS STRING,;    
                  nPropertyId     AS USHORT,;    
                  uProperty       AS USHORT,;
                  nPropertyLen    AS USHORT ) IN ACE32.DLL
In den weiteren Erläuerungen steht:
ADS_DD_ARTICLE_UPDATE_MERGE
Sets the flag that specifies whether or not this article uses SQL MERGE statements when performing UPDATEs at the target. pvProperty is expected to contain a 2 byte (UNSIGNED16) value that is 0 (FALSE) or 1 (TRUE).
Was muss ich als uProperty und nPropertyLen übergeben ?
Ich weiss nicht was als
2 byte (UNSIGNED16) value that is 0 (FALSE) or 1 (TRUE)
und PropertyLen erwartet wird.

Glück Auf!
Udo

Re: AdsDDSetArticleProperty Parameter

Verfasst: Mo, 27. Nov 2023 12:16
von nightcrawler
wenn es auch nur am Rande passt: Tu Dir einen Gefallen und stelle um auf SQL, dann kannst Du das alles im Architekten vorher testen und hast keine Probleme mehr mit Datentypen.

Re: AdsDDSetArticleProperty Parameter

Verfasst: Mo, 27. Nov 2023 13:22
von Marcus Herz
ich würde mal probieren: (habs nicht getestet)

Code: Alles auswählen

uProperyy := I2bin(0)   // oder 1,, als 2-byte String
AdsDDSetArticleProperty(;
                  hHandle,;
                  "xcy",;    
                  "tabelname",;    
                  1608,;               // ADS_DD_ARTICLE_UPDATE_MERGE
                  uProperty     ,;
                  2 )

Re: AdsDDSetArticleProperty Parameter

Verfasst: Mo, 27. Nov 2023 15:43
von Udo
Bedankt!

So geht's
uProperty muss im Extern Befehl als STRING definiert werden und i2bin(1) für "Schalter setzen" übergeben werden.

Glück Auf!
Udo