Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/storage/connect/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 7 kB image not shown  

Quelle  tabext.h   Sprache: C

 

/*************** Tabext H Declares Source Code File (.H) ***************/
/*  Name: TABEXT.H  Version 1.1                                        */
/*                                                                     */
/*  (C) Copyright to the author Olivier BERTRAND          2017 - 2019  */
/*                                                                     */
/*  This is the EXTDEF, TABEXT and EXTCOL classes definitions.         */
/***********************************************************************/

#ifndef __TABEXT_H
#define __TABEXT_H

#include "reldef.h"

typedef class ALIAS *PAL;

class ALIAS : public BLOCK {
 public:
 ALIAS(PAL x, PSZ n, PSZ a, bool h)
      {Next = x, Name = n, Alias = a, Having = h;}

 PAL  Next;
 PSZ  Name;
 PSZ  Alias;
 bool Having;
}; // end of class ALIAS

// Condition filter structure
class CONDFIL : public BLOCK {
 public:
 // Constructor
 CONDFIL(uint idx, AMT type);

 // Functions
 int Init(PGLOBAL g, PHC hc);
 const char *Chk(const char *cln, bool *h);

 // Members
//const Item *Cond;
 AMT   Type;
 uint  Idx;
 OPVAL Op;
 PCMD  Cmds;
 PAL   Alist;
 bool  All;
 bool  Bd;
 bool  Hv;
 char *Body;
 char *Having;
}; // end of class CONDFIL

/***********************************************************************/
/*  This class corresponds to the data base description for external   */
/*  tables of type MYSQL, ODBC, JDBC...                                */
/***********************************************************************/
class DllExport EXTDEF : public TABDEF {                  /* EXT table */
 friend class TDBEXT;
public:
 // Constructor
 EXTDEF(void);                  // Constructor

 // Implementation
 const char *GetType(void) override { return "EXT"; }
 inline PCSZ GetTabname(void) { return Tabname; }
 inline PCSZ GetTabschema(void) { return Tabschema; }
 inline PCSZ GetUsername(void) { return Username; };
 inline PCSZ GetPassword(void) { return Password; };
 inline PSZ  GetTabcat(void) { return Tabcat; }
 inline PSZ  GetSrcdef(void) { return Srcdef; }
 inline char GetSep(void) { return (Sep) ? *Sep : 0; }
 inline int  GetQuoted(void) { return Quoted; }
 inline PSZ GetQchar(void) { return Qchar; }
 inline int  GetOptions(void) { return Options; }

 // Methods
 int  Indexable(void) override { return 2; }
 bool DefineAM(PGLOBAL g, LPCSTR am, int poff) override;

protected:
 // Members
 PCSZ    Tabname;              /* External table name                 */
 PCSZ    Tabschema;            /* External table schema               */
 PCSZ    Username;             /* User connect name                   */
 PCSZ    Password;             /* Password connect info               */
 PSZ     Tabcat;               /* External table catalog              */
 PSZ     Tabtyp;               /* Catalog table type                  */
 PSZ     Colpat;               /* Catalog column pattern              */
 PSZ     Srcdef;               /* The source table SQL definition     */
 PSZ     Qchar;                /* Identifier quoting character        */
 PSZ     Qrystr;               /* The original query                  */
 PSZ     Sep;                  /* Decimal separator                   */
//PSZ     Alias;                /* Column alias list                   */
 PSZ     Phpos;                /* Place holer positions               */
 int     Options;              /* Open connection options             */
 int     Cto;                  /* Open connection timeout             */
 int     Qto;                  /* Query (command) timeout             */
 int     Quoted;               /* Identifier quoting level            */
 int     Maxerr;               /* Maxerr for an Exec table            */
 int     Maxres;               /* Maxres for a catalog table          */
 int     Memory;               /* Put result set in memory            */
 bool    Scrollable;           /* Use scrollable cursor               */
 bool    Xsrc;                 /* Execution type                      */
}; // end of EXTDEF

/***********************************************************************/
/*  This is the base class for all external tables.                    */
/***********************************************************************/
class DllExport TDBEXT : public TDB {
 friend class JAVAConn;
 friend class JMgoConn;
public:
 // Constructors
 TDBEXT(EXTDEF *tdp);
 TDBEXT(PTDBEXT tdbp);

 // Implementation

 // Properties
 bool IsRemote(void) override { return true; }

 // Methods
 PCSZ GetServer(void) override { return "Remote"; }
 int  GetRecpos(void) override;

 // Database routines
 int  GetMaxSize(PGLOBAL g) override;
 int  GetProgMax(PGLOBAL g) override;

protected:
 // Internal functions
 virtual bool MakeSrcdef(PGLOBAL g);
 virtual bool MakeSQL(PGLOBAL g, bool cnt);
 //virtual bool MakeInsert(PGLOBAL g);
 virtual bool MakeCommand(PGLOBAL g);
 void RemoveConst(PGLOBAL g, char *stmt);
 int Decode(PCSZ utf, char *buf, size_t n);

 // Members
 PQRYRES Qrp;                // Points to storage result
 PSTRG   Query;              // Constructed SQL query
 PCSZ    TableName;          // Points to ODBC table name
 PCSZ    Schema;             // Points to ODBC table Schema
 PCSZ    User;               // User connect info
 PCSZ    Pwd;                // Password connect info
 char   *Catalog;            // Points to ODBC table Catalog
 char   *Srcdef;             // The source table SQL definition
 char   *Count;              // Points to count(*) SQL statement
 //char   *Where;              // Points to local where clause
 char   *Quote;              // The identifier quoting character
 char   *MulConn;            // Used for multiple ODBC tables
 char   *DBQ;                // The address part of Connect string
 char   *Qrystr;             // The original query
 char    Sep;                // The decimal separator
 int     Options;            // Connect options
 int     Cto;                // Connect timeout
 int     Qto;                // Query timeout
 int     Quoted;             // The identifier quoting level
 int     Fpos;               // Position of last read record
 int     Curpos;             // Cursor position of last fetch
 int     AftRows;            // The number of affected rows
 int     Rows;               // Rowset size
 int     CurNum;             // Current buffer line number
 int     Rbuf;               // Number of lines read in buffer
 int     BufSize;            // Size of connect string buffer
 int     Nparm;              // The number of statement parameters
 int     Memory;             // 0: No 1: Alloc 2: Put 3: Get
 int     Ncol;         // The column number (JDBC)
 bool    Scrollable;         // Use scrollable cursor
 bool    Placed;             // True for position reading
}; // end of class TDBEXT

/***********************************************************************/
/*  Virtual class EXTCOL: external column.                             */
/***********************************************************************/
class DllExport EXTCOL : public COLBLK {
 friend class TDBEXT;
public:
 // Constructor
 EXTCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am);
 EXTCOL(PEXTCOL colp, PTDB tdbp); // Constructor used in copy process

 // Implementation
 inline int   GetRank(void) { return Rank; }
 inline void  SetRank(int k) { Rank = k; }
 //inline PVBLK GetBlkp(void) {return Blkp;}
 inline void  SetCrp(PCOLRES crp) { Crp = crp; }

 // Methods
 bool   SetBuffer(PGLOBAL g, PVAL value, bool ok, bool check) override;
 void   ReadColumn(PGLOBAL) override = 0;
 void   WriteColumn(PGLOBAL) override = 0;

protected:
 // Constructor for count(*) column
 EXTCOL(void);

 // Members
 PCOLRES Crp;                 // To storage result
 void   *Bufp;                // To extended buffer
 PVBLK   Blkp;                // To Value Block
 PVAL    To_Val;              // To value used for Insert
 int     Rank;                // Rank (position) number in the query
 //int     Flag;  // ???
}; // end of class EXTCOL

#endif // __TABEXT_H

Messung V0.5 in Prozent
C=48 H=100 G=78

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.