Borland Delphi and taminox.OCX

Hello!

I registered taminox.ocx on my Windows 2000 Pro. I use tamino 3.1.1.1 to store my xml document. I want to get my data from tamino using delphi [c++builder]. I have been looking through documentation, however sdk is only in c++, java, javascript. The more important thing is that I could not rewrite c++ code into my delphi application. These are codes in c++:

1) m_cTaminoX.setCsDatabaseURL(“http://localhost/tamino/mydb/Telephone”);
[ object TAMINOX not include function setCsDatabaseURL !!]

2) CDOM SPDOMNodeList(lpDOMNodeList)
[ I don’t know how I should rewrite it in delphi (object pascal language)]

3) CDOM SPDOCDoc(lpDOMDocWork)
[ I don’t know how I should rewrite it in delphi (object pascal language)]

These above lines come from sample sdk support:
C:\Program Files\Software AG\Tamino\Tamino 3.1.1.1\SDK\ActiveX\sampleTaminoDeleteByQuery

Any help will be VERY appreciated. Thanks a lot!!

Best Regards from POLAND
Dariusz Baumann

PS.
Here is TaminoXLIB.pas (automat generated by delphi)

unit TAMINOXLib_TLB;

// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// ‘Refresh’ command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //

// PASTLWTR : $Revision: 1.88 $
// File generated on 2002-05-15 13:36:16 from Type Library described below.

// ************************************************************************ //
// Type Lib: C:\Program Files\Software AG\Tamino\Tamino 3.1.1.1\SDK\ActiveX\TaminoX.ocx (1)
// IID\LCID: {662A7593-6B76-11D3-8AC7-00500466D86F}\0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
// (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
interface

uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL;

// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
TAMINOXLibMajorVersion = 1;
TAMINOXLibMinorVersion = 0;

LIBID_TAMINOXLib: TGUID = ‘{662A7593-6B76-11D3-8AC7-00500466D86F}’;

DIID__DTaminoX: TGUID = ‘{662A7594-6B76-11D3-8AC7-00500466D86F}’;
DIID__DTaminoXEvents: TGUID = ‘{662A7595-6B76-11D3-8AC7-00500466D86F}’;
CLASS_TaminoX: TGUID = ‘{E723849E-6B4D-11D3-8AC6-00500466D86F}’;

// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum IsolationTypes
type
IsolationTypes = TOleEnum;
const
InoIsolationDefault = $00000001;
InoUnprotected = $00000002;
InoShared = $00000003;
InoProtected = $00000004;

// Constants for enum LockWaitTypes
type
LockWaitTypes = TOleEnum;
const
InoLockWaitDefault = $00000001;
InoLockWaitYes = $00000002;
InoLockWaitNo = $00000003;

// Constants for enum XMLHttpTypes
type
XMLHttpTypes = TOleEnum;
const
XMLHttpOriginal = $00000000;
XMLHttpMSXML2 = $00000001;
XMLHttpMSXML2Server = $00000002;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
_DTaminoX = dispinterface;
_DTaminoXEvents = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
TaminoX = _DTaminoX;


// *********************************************************************//
// Declaration of structures, unions and aliases.
// ********************************************************************//
POleVariant1 = ^OleVariant; {
}


// *********************************************************************//
// DispIntf: _DTaminoX
// Flags: (4112) Hidden Dispatchable
// GUID: {662A7594-6B76-11D3-8AC7-00500466D86F}
// *********************************************************************//
_DTaminoX = dispinterface
[’{662A7594-6B76-11D3-8AC7-00500466D86F}’]
property lPagesize: Integer dispid 1;
property csPassword: WideString dispid 2;
property csDatabaseURL: WideString dispid 3;
property csXMLHeader: WideString dispid 4;
property Encoding: WideString dispid 7;
property csSecurePath: WideString dispid 5;
property csUserName: WideString dispid 6;
property AcceptCharset: WideString dispid 8;
property AcceptLanguage: WideString dispid 9;
property ContentType: WideString dispid 10;
property SessionID: WideString dispid 11;
property SessionKey: WideString dispid 12;
function GetResult(const lpDOMDocument: IDispatch): IDispatch; dispid 13;
function ReturnNodes(const lpDOMDocument: IDispatch): IDispatch; dispid 14;
function Insert(const lpDOMNode: IDispatch): IDispatch; dispid 15;
function GetFirst(const lpDOMDocument: IDispatch): IDispatch; dispid 16;
function GetPrev(const lpDOMDocument: IDispatch): IDispatch; dispid 17;
function GetNext(const lpDOMDocument: IDispatch): IDispatch; dispid 18;
function GetLast(const lpDOMDocument: IDispatch): IDispatch; dispid 19;
function GetErrorStatus(var ErrorText: OleVariant): Integer; dispid 20;
function EndSession: IDispatch; dispid 21;
function Commit: IDispatch; dispid 22;
function Rollback: IDispatch; dispid 23;
function InoDelete(const lpDOMElement: IDispatch): IDispatch; dispid 24;
function PutDocument(const lpszReURL: WideString; const lpDOMNode: IDispatch): IDispatch; dispid 25;
function Process(const lpDOMNode: IDispatch; const lpszProcURL: WideString): IDispatch; dispid 26;
function InoAppendChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch; dispid 27;
function InoInsertBefore(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch; dispid 28;
function InoReplaceChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch; dispid 29;
function InoRemoveChild(const lpszRelURL: WideString; const lpszXPath: WideString): IDispatch; dispid 30;
function DeleteDocument(const lpszReURL: WideString): IDispatch; dispid 31;
function DoQuery(const lpszXQLQuery: WideString): IDispatch; dispid 32;
function GetDocument(const lpszReURL: WideString): IDispatch; dispid 33;
function Head(const lpszReURL: WideString): IDispatch; dispid 34;
function RefreshResult: IDispatch; dispid 35;
function Undefine(const theString: WideString): IDispatch; dispid 36;
function Define(const lpDOMDocument: IDispatch): IDispatch; dispid 37;
function Echo: IDispatch; dispid 38;
function Ping: IDispatch; dispid 39;
function Initialize: Integer; dispid 40;
function IsFirst(const lpDOMDocument: IDispatch): Integer; dispid 41;
function IsNext(const lpDOMDocument: IDispatch): Integer; dispid 42;
function IsLast(const lpDOMDocument: IDispatch): Integer; dispid 43;
function IsPrevious(const lpDOMDocument: IDispatch): Integer; dispid 44;
function GetTotalCount(const lpDOMDocument: IDispatch): Integer; dispid 45;
function GetCollection(const lpDOMX: IDispatch): OleVariant; dispid 46;
function GetDocType(const lpDOMX: IDispatch): OleVariant; dispid 47;
function GetInoId(const lpDOMX: IDispatch): OleVariant; dispid 48;
function GetLocation(const lpDOMDocument: IDispatch): WideString; dispid 49;
function StartSession(InoIsolation: IsolationTypes; InoLockWait: LockWaitTypes): IDispatch; dispid 50;
function DoQueryWithOffset(const lpszXQLQuery: WideString; loffset: Integer): IDispatch; dispid 51;
function GetDateLastModified: WideString; dispid 52;
function GetAllResponseHeaders: WideString; dispid 53;
function GetVersion: WideString; dispid 54;
procedure AddErrorStatusText(const lpszUserErrorText: WideString); dispid 55;
function DeleteByQuery(const lpszQuery: WideString; const lpszCollection: WideString;
const lpszDocType: WideString): IDispatch; dispid 56;
function SetRequestHeader(Value: OleVariant): Integer; dispid 57;
function InSession: Integer; dispid 58;
function UseServerHTTP(index: Integer): Integer; dispid 59;
end;

// *********************************************************************//
// DispIntf: _DTaminoXEvents
// Flags: (4096) Dispatchable
// GUID: {662A7595-6B76-11D3-8AC7-00500466D86F}
// *********************************************************************//
_DTaminoXEvents = dispinterface
[’{662A7595-6B76-11D3-8AC7-00500466D86F}’]
end;


// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TTaminoX
// Help String : Tamino DOM Control
// Default Interface: _DTaminoX
// Def. Intf. DISP? : Yes
// Event Interface: _DTaminoXEvents
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TTaminoX = class(TOleControl)
private
FIntf: _DTaminoX;
function GetControlInterface: _DTaminoX;
protected
procedure CreateControl;
procedure InitControlData; override;
public
function GetResult(const lpDOMDocument: IDispatch): IDispatch;
function ReturnNodes(const lpDOMDocument: IDispatch): IDispatch;
function Insert(const lpDOMNode: IDispatch): IDispatch;
function GetFirst(const lpDOMDocument: IDispatch): IDispatch;
function GetPrev(const lpDOMDocument: IDispatch): IDispatch;
function GetNext(const lpDOMDocument: IDispatch): IDispatch;
function GetLast(const lpDOMDocument: IDispatch): IDispatch;
function GetErrorStatus(var ErrorText: OleVariant): Integer;
function EndSession: IDispatch;
function Commit: IDispatch;
function Rollback: IDispatch;
function InoDelete(const lpDOMElement: IDispatch): IDispatch;
function PutDocument(const lpszReURL: WideString; const lpDOMNode: IDispatch): IDispatch;
function Process(const lpDOMNode: IDispatch; const lpszProcURL: WideString): IDispatch;
function InoAppendChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
function InoInsertBefore(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
function InoReplaceChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
function InoRemoveChild(const lpszRelURL: WideString; const lpszXPath: WideString): IDispatch;
function DeleteDocument(const lpszReURL: WideString): IDispatch;
function DoQuery(const lpszXQLQuery: WideString): IDispatch;
function GetDocument(const lpszReURL: WideString): IDispatch;
function Head(const lpszReURL: WideString): IDispatch;
function RefreshResult: IDispatch;
function Undefine(const theString: WideString): IDispatch;
function Define(const lpDOMDocument: IDispatch): IDispatch;
function Echo: IDispatch;
function Ping: IDispatch;
function Initialize: Integer;
function IsFirst(const lpDOMDocument: IDispatch): Integer;
function IsNext(const lpDOMDocument: IDispatch): Integer;
function IsLast(const lpDOMDocument: IDispatch): Integer;
function IsPrevious(const lpDOMDocument: IDispatch): Integer;
function GetTotalCount(const lpDOMDocument: IDispatch): Integer;
function GetCollection(const lpDOMX: IDispatch): OleVariant;
function GetDocType(const lpDOMX: IDispatch): OleVariant;
function GetInoId(const lpDOMX: IDispatch): OleVariant;
function GetLocation(const lpDOMDocument: IDispatch): WideString;
function StartSession(InoIsolation: IsolationTypes; InoLockWait: LockWaitTypes): IDispatch;
function DoQueryWithOffset(const lpszXQLQuery: WideString; loffset: Integer): IDispatch;
function GetDateLastModified: WideString;
function GetAllResponseHeaders: WideString;
function GetVersion: WideString;
procedure AddErrorStatusText(const lpszUserErrorText: WideString);
function DeleteByQuery(const lpszQuery: WideString; const lpszCollection: WideString;
const lpszDocType: WideString): IDispatch;
function SetRequestHeader(Value: OleVariant): Integer;
function InSession: Integer;
function UseServerHTTP(index: Integer): Integer;
property ControlInterface: _DTaminoX read GetControlInterface;
property DefaultInterface: _DTaminoX read GetControlInterface;
published
property lPagesize: Integer index 1 read GetIntegerProp write SetIntegerProp stored False;
property csPassword: WideString index 2 read GetWideStringProp write SetWideStringProp stored False;
property csDatabaseURL: WideString index 3 read GetWideStringProp write SetWideStringProp stored False;
property csXMLHeader: WideString index 4 read GetWideStringProp write SetWideStringProp stored False;
property Encoding: WideString index 7 read GetWideStringProp write SetWideStringProp stored False;
property csSecurePath: WideString index 5 read GetWideStringProp write SetWideStringProp stored False;
property csUserName: WideString index 6 read GetWideStringProp write SetWideStringProp stored False;
property AcceptCharset: WideString index 8 read GetWideStringProp write SetWideStringProp stored False;
property AcceptLanguage: WideString index 9 read GetWideStringProp write SetWideStringProp stored False;
property ContentType: WideString index 10 read GetWideStringProp write SetWideStringProp stored False;
property SessionID: WideString index 11 read GetWideStringProp write SetWideStringProp stored False;
property SessionKey: WideString index 12 read GetWideStringProp write SetWideStringProp stored False;
end;

procedure Register;

implementation

uses ComObj;

procedure TTaminoX.InitControlData;
const
CControlData: TControlData2 = (
ClassID: ‘{E723849E-6B4D-11D3-8AC6-00500466D86F}’;
EventIID: ‘’;
EventCount: 0;
EventDispIDs: nil;
LicenseKey: nil (HR:$80004005);
Flags: $00000000;
Version: 401);
begin
ControlData := @CControlData;
end;

procedure TTaminoX.CreateControl;

procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as _DTaminoX;
end;

begin
if FIntf = nil then DoCreate;
end;

function TTaminoX.GetControlInterface: _DTaminoX;
begin
CreateControl;
Result := FIntf;
end;

function TTaminoX.GetResult(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.GetResult(lpDOMDocument);
end;

function TTaminoX.ReturnNodes(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.ReturnNodes(lpDOMDocument);
end;

function TTaminoX.Insert(const lpDOMNode: IDispatch): IDispatch;
begin
Result := DefaultInterface.Insert(lpDOMNode);
end;

function TTaminoX.GetFirst(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.GetFirst(lpDOMDocument);
end;

function TTaminoX.GetPrev(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.GetPrev(lpDOMDocument);
end;

function TTaminoX.GetNext(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.GetNext(lpDOMDocument);
end;

function TTaminoX.GetLast(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.GetLast(lpDOMDocument);
end;

function TTaminoX.GetErrorStatus(var ErrorText: OleVariant): Integer;
begin
Result := DefaultInterface.GetErrorStatus(ErrorText);
end;

function TTaminoX.EndSession: IDispatch;
begin
Result := DefaultInterface.EndSession;
end;

function TTaminoX.Commit: IDispatch;
begin
Result := DefaultInterface.Commit;
end;

function TTaminoX.Rollback: IDispatch;
begin
Result := DefaultInterface.Rollback;
end;

function TTaminoX.InoDelete(const lpDOMElement: IDispatch): IDispatch;
begin
Result := DefaultInterface.InoDelete(lpDOMElement);
end;

function TTaminoX.PutDocument(const lpszReURL: WideString; const lpDOMNode: IDispatch): IDispatch;
begin
Result := DefaultInterface.PutDocument(lpszReURL, lpDOMNode);
end;

function TTaminoX.Process(const lpDOMNode: IDispatch; const lpszProcURL: WideString): IDispatch;
begin
Result := DefaultInterface.Process(lpDOMNode, lpszProcURL);
end;

function TTaminoX.InoAppendChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
begin
Result := DefaultInterface.InoAppendChild(lpszRelURL, lpszXPath, lpDOMNode);
end;

function TTaminoX.InoInsertBefore(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
begin
Result := DefaultInterface.InoInsertBefore(lpszRelURL, lpszXPath, lpDOMNode);
end;

function TTaminoX.InoReplaceChild(const lpszRelURL: WideString; const lpszXPath: WideString;
const lpDOMNode: IDispatch): IDispatch;
begin
Result := DefaultInterface.InoReplaceChild(lpszRelURL, lpszXPath, lpDOMNode);
end;

function TTaminoX.InoRemoveChild(const lpszRelURL: WideString; const lpszXPath: WideString): IDispatch;
begin
Result := DefaultInterface.InoRemoveChild(lpszRelURL, lpszXPath);
end;

function TTaminoX.DeleteDocument(const lpszReURL: WideString): IDispatch;
begin
Result := DefaultInterface.DeleteDocument(lpszReURL);
end;

function TTaminoX.DoQuery(const lpszXQLQuery: WideString): IDispatch;
begin
Result := DefaultInterface.DoQuery(lpszXQLQuery);
end;

function TTaminoX.GetDocument(const lpszReURL: WideString): IDispatch;
begin
Result := DefaultInterface.GetDocument(lpszReURL);
end;

function TTaminoX.Head(const lpszReURL: WideString): IDispatch;
begin
Result := DefaultInterface.Head(lpszReURL);
end;

function TTaminoX.RefreshResult: IDispatch;
begin
Result := DefaultInterface.RefreshResult;
end;

function TTaminoX.Undefine(const theString: WideString): IDispatch;
begin
Result := DefaultInterface.Undefine(theString);
end;

function TTaminoX.Define(const lpDOMDocument: IDispatch): IDispatch;
begin
Result := DefaultInterface.Define(lpDOMDocument);
end;

function TTaminoX.Echo: IDispatch;
begin
Result := DefaultInterface.Echo;
end;

function TTaminoX.Ping: IDispatch;
begin
Result := DefaultInterface.Ping;
end;

function TTaminoX.Initialize: Integer;
begin
Result := DefaultInterface.Initialize;
end;

function TTaminoX.IsFirst(const lpDOMDocument: IDispatch): Integer;
begin
Result := DefaultInterface.IsFirst(lpDOMDocument);
end;

function TTaminoX.IsNext(const lpDOMDocument: IDispatch): Integer;
begin
Result := DefaultInterface.IsNext(lpDOMDocument);
end;

function TTaminoX.IsLast(const lpDOMDocument: IDispatch): Integer;
begin
Result := DefaultInterface.IsLast(lpDOMDocument);
end;

function TTaminoX.IsPrevious(const lpDOMDocument: IDispatch): Integer;
begin
Result := DefaultInterface.IsPrevious(lpDOMDocument);
end;

function TTaminoX.GetTotalCount(const lpDOMDocument: IDispatch): Integer;
begin
Result := DefaultInterface.GetTotalCount(lpDOMDocument);
end;

function TTaminoX.GetCollection(const lpDOMX: IDispatch): OleVariant;
begin
Result := DefaultInterface.GetCollection(lpDOMX);
end;

function TTaminoX.GetDocType(const lpDOMX: IDispatch): OleVariant;
begin
Result := DefaultInterface.GetDocType(lpDOMX);
end;

function TTaminoX.GetInoId(const lpDOMX: IDispatch): OleVariant;
begin
Result := DefaultInterface.GetInoId(lpDOMX);
end;

function TTaminoX.GetLocation(const lpDOMDocument: IDispatch): WideString;
begin
Result := DefaultInterface.GetLocation(lpDOMDocument);
end;

function TTaminoX.StartSession(InoIsolation: IsolationTypes; InoLockWait: LockWaitTypes): IDispatch;
begin
Result := DefaultInterface.StartSession(InoIsolation, InoLockWait);
end;

function TTaminoX.DoQueryWithOffset(const lpszXQLQuery: WideString; loffset: Integer): IDispatch;
begin
Result := DefaultInterface.DoQueryWithOffset(lpszXQLQuery, loffset);
end;

function TTaminoX.GetDateLastModified: WideString;
begin
Result := DefaultInterface.GetDateLastModified;
end;

function TTaminoX.GetAllResponseHeaders: WideString;
begin
Result := DefaultInterface.GetAllResponseHeaders;
end;

function TTaminoX.GetVersion: WideString;
begin
Result := DefaultInterface.GetVersion;
end;

procedure TTaminoX.AddErrorStatusText(const lpszUserErrorText: WideString);
begin
DefaultInterface.AddErrorStatusText(lpszUserErrorText);
end;

function TTaminoX.DeleteByQuery(const lpszQuery: WideString; const lpszCollection: WideString;
const lpszDocType: WideString): IDispatch;
begin
Result := DefaultInterface.DeleteByQuery(lpszQuery, lpszCollection, lpszDocType);
end;

function TTaminoX.SetRequestHeader(Value: OleVariant): Integer;
begin
Result := DefaultInterface.SetRequestHeader(Value);
end;

function TTaminoX.InSession: Integer;
begin
Result := DefaultInterface.InSession;
end;

function TTaminoX.UseServerHTTP(index: Integer): Integer;
begin
Result := DefaultInterface.UseServerHTTP(index);
end;

procedure Register;
begin
RegisterComponents(‘ActiveX’,[TTaminoX]);
end;

end.

With Visual Studio it is possible to write C++ that make use of MFC (microsoft foundation classes). These classes take out a lot of the hard work of writing GUI applications. Whats also possible with MFC is for it to generate classes from ActiveX controls and the COM stuff is hidden behind classes.

Now to give you a few hints (and I am no pascal programmer):



CDOM<…> above is a C++ template class that takes a IXMLDOMNodeList as the template parameter. This template classes is expanded during compliation. The generated class in this case is wrapping COM calls to instantiate Microsoft XML ActiveX control to get back an IXMLDOMNodeList interface pointer.

In Pascal I think what you would need to do is to generate another class from msxml3.dll.

Hello!

Now, I can return record count from my TAMINO using taminox.ocx, msxml3.dll and Delphi. It works very well.

However, I can’t return my nodes by using nodename (getElementsByTagName). How can I do that? Thanks a lot for support.

Regards
Dariusz Baumann


Here is my sample code:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, TAMINOXLib_TLB, OleServer, MSXML2_TLB;

type
TForm1 = class(TForm)
m_cTaminoX: TTaminoX;
Button1: TButton;
DOMDocument1: TDOMDocument;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
m_lpDOMDocResult: IDispatch;
m_lpDOMDocument: IDispatch;
// lpDOMNodeList: IDispatch;
// SPDOMNodeList: IXMLDOMNodeList;
// SPDOCDoc: IXMLDOMDocument;
// SPDOMElement: IXMLDOMElement;

begin
m_cTaminoX.Initialize;
m_cTaminoX.lPagesize:=0;
m_cTaminoX.csDatabaseURL := ‘http://localhost/tamino/mydb/col’;
m_lpDOMDocResult := m_cTaminoX.DoQuery(‘dok’);
Edit1.Text := IntToStr(m_cTaminoX.GetTotalCount(m_lpDOMDocResult));
end;

end.