webMethods

webMethods

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Borland Delphi and taminox.OCX

    Posted Thu May 16, 2002 02:52 PM

    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.


    #webMethods
    #webMethods-Tamino-XML-Server-APIs
    #API-Management


  • 2.  RE: Borland Delphi and taminox.OCX

    Posted Thu May 16, 2002 05:11 PM

    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.


    #API-Management
    #webMethods-Tamino-XML-Server-APIs
    #webMethods


  • 3.  RE: Borland Delphi and taminox.OCX

    Posted Mon May 20, 2002 12:33 PM

    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.


    #webMethods-Tamino-XML-Server-APIs
    #webMethods
    #API-Management