DBreturnInfoSettings

Top  Previous  Next

Autor:  Horst Wessel

Datum:  2.11.95

Quellcode:  attribut.c

Änderungen: 2.11.95 Parameter Stufe eingebaut.

 

Inhalt eines Attributs

Zu einem Handle für ein Attribut werden die vorhandenen Informationen ermittelt. Dies sind z.B. der Name des Attributs und der Inhalt dieses Attributs. Diese werden in die vom Anwender zu Verfügung gestellten Struktur settings geschrieben. Da sowohl der Name, als auch der Inhalt eines Attributs von variabler Länge sind, werden diese Felder über Zeiger realisiert. Für den Anwender ergeben sich hierbei zwei Möglichkeiten, zu dem nötigen Speicherplatz zu gelangen. Wenn in der Struktur settings die Zeiger mit NULL initialisiert werden, besorgt DBreturnInfoSettings den Speicherplatz in der notwendigen Größe selbständig. Der Anwender muss der Speicherplatz dann über Free Free wieder beseitigen. Welche Prozedur unter Free angesprochen wird, hängt vom Betriebsystem ab. Der Anwender kann den Speicherplatz auch selbst bereitstellen, wobei hier auch statische Variablen oder Stackbereiche möglich sind. DBreturnInfoSettings benutzt diesen Speicherplatz dann und schneidet Werte, die nicht in den vorhandenen Platz passen, ab.

Parameter

info (PINFO_ELEMENT)                            [IN]

Dies ist das Handle eines Attributs. Von diesem soll der Inhalt und der Name ermittelt werden.

settings (INFO_SETTINGS *)          [IN/OUT]

Der Anwender stellt eine Struktur vom Typ INFO_SETTINGS zur Verfügung, in die diese Prozedur die Daten des Attributs schreibt. Der Speicherplatz kann statisch oder dynamisch sein und wird vom Anwender verwaltet. Die Zeiger und Längenangaben müssen initialisiert sein. maxAttribLen und maxAttribNameLen werden mit der realen Länge des Attributnamen und des Attributwertes gefüllt. Wenn attribName oder attrib NULL sind, wird von der Prozedur Speicher angefordert. Sie füllt dann auch die Längenangaben maxAttribLen und maxAttribNameLen aus. Wenn ein Zeiger nicht NULL ist, muss er auf einen Bereich zeigen, der mindestens die Länge maxAttribNameLen, bzw. maxAttribLen aufweist. Der Speicher wird dann benutzt und nur maxAttribLen, bzw. maxAttribNameLen mit den real kopierten Werten überschrieben.

stufe (int)                                                      [IN]

reserviert, muss 1 sein.

Wenn weitere Informationen eingeführt werden, werden diese über stufe unterschieden.

Ergebnis

(T_ERROR)                                             [OUT]

Wenn die Prozedur fehlerfrei ausgeführt werden konnte, dann liefert sie ERROR_OK, sonst eine der Fehlermeldungen aus error.h.

Deklaration

#include "database.h"

 

T_ERROR DLLENTRY DBreturnInfoSettings (

     PINFO_ELEMENT        info,

     INFO_SETTINGS *      settings,

     int                  stufe

);