mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
82e746ea1b
included by the program using them. Continuing implementing the "catalog" tables (ex "info"). Already existing were the ODBC data source table and the WMI column info table. A common way to handle them will permit to develop many other such tables. Implemented: The ODBC column catalog table. The ODBC tables catalog table. The ODBC drivers catalog table. The INFO table option is replaced by the CATFUNC string option whode first letter specifies the information to retrieve: C: Columns (of a table) T: Tables (of a database) S: Data sources D: Drivers Modified: ha_connect.cc odbconn.cpp odbconn.h tabodbc.h tabodbc.cpp rcmsg.c tabfmt.h tabmysql.cpp tabwmi.cpp tabwmi.h resource.h myconn.h filamdbf.h connect.cc connect.h Added: myutil.h
116 lines
4.5 KiB
C++
116 lines
4.5 KiB
C++
/***************** FilAmDbf H Declares Source Code File (.H) ****************/
|
|
/* Name: filamdbf.h Version 1.3 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 2005-2012 */
|
|
/* */
|
|
/* This file contains the DBF file access method classes declares. */
|
|
/****************************************************************************/
|
|
|
|
#ifndef __FILAMDBF_H
|
|
#define __FILAMDBF_H
|
|
|
|
#include "filamfix.h"
|
|
#include "filamap.h"
|
|
|
|
typedef class DBFBASE *PDBF;
|
|
typedef class DBFFAM *PDBFFAM;
|
|
typedef class DBMFAM *PDBMFAM;
|
|
|
|
/****************************************************************************/
|
|
/* Functions used externally. */
|
|
/****************************************************************************/
|
|
PQRYRES DBFColumns(PGLOBAL g, char *fn, BOOL info);
|
|
|
|
/****************************************************************************/
|
|
/* This is the base class for dBASE file access methods. */
|
|
/****************************************************************************/
|
|
class DllExport DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBFBASE(PDOSDEF tdp);
|
|
DBFBASE(PDBF txfp);
|
|
|
|
// Implementation
|
|
int ScanHeader(PGLOBAL g, PSZ fname, int lrecl, char *defpath);
|
|
|
|
protected:
|
|
// Default constructor, not to be used
|
|
DBFBASE(void) {}
|
|
|
|
// Members
|
|
int Records; /* records in the file */
|
|
bool Accept; /* true if bad lines are accepted */
|
|
int Nerr; /* Number of bad records */
|
|
int Maxerr; /* Maximum number of bad records */
|
|
int ReadMode; /* 1: ALL 2: DEL 0: NOT DEL */
|
|
//PSZ Defpath; /* Default data path */
|
|
}; // end of class DBFBASE
|
|
|
|
/****************************************************************************/
|
|
/* This is the DOS/UNIX Access Method class declaration for DBase files. */
|
|
/****************************************************************************/
|
|
class DllExport DBFFAM : public FIXFAM, public DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBFFAM(PDOSDEF tdp) : FIXFAM(tdp), DBFBASE(tdp) {}
|
|
DBFFAM(PDBFFAM txfp) : FIXFAM(txfp), DBFBASE((PDBF)txfp) {}
|
|
|
|
// Implementation
|
|
virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
|
|
virtual PTXF Duplicate(PGLOBAL g)
|
|
{return (PTXF)new(g) DBFFAM(this);}
|
|
|
|
// Methods
|
|
virtual int GetNerr(void) {return Nerr;}
|
|
virtual int Cardinality(PGLOBAL g);
|
|
//virtual int GetRowID(void); // Temporarily suppressed
|
|
virtual bool OpenTableFile(PGLOBAL g);
|
|
virtual bool AllocateBuffer(PGLOBAL g);
|
|
virtual void ResetBuffer(PGLOBAL g);
|
|
virtual int ReadBuffer(PGLOBAL g);
|
|
//virtual int WriteBuffer(PGLOBAL g);
|
|
virtual int DeleteRecords(PGLOBAL g, int irc);
|
|
virtual void CloseTableFile(PGLOBAL g);
|
|
virtual void Rewind(void);
|
|
|
|
protected:
|
|
// Members
|
|
virtual bool CopyHeader(PGLOBAL g);
|
|
|
|
//int Records; in TXTFAM
|
|
//int Headlen; in TXTFAM
|
|
}; // end of class DBFFAM
|
|
|
|
/****************************************************************************/
|
|
/* This is the DOS/UNIX Access Method class declaration for DBase files */
|
|
/* using file mapping to access the file. */
|
|
/****************************************************************************/
|
|
class DllExport DBMFAM : public MPXFAM, public DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBMFAM(PDOSDEF tdp) : MPXFAM(tdp), DBFBASE(tdp) {}
|
|
DBMFAM(PDBMFAM txfp) : MPXFAM(txfp), DBFBASE((PDBF)txfp) {}
|
|
|
|
// Implementation
|
|
virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
|
|
virtual PTXF Duplicate(PGLOBAL g)
|
|
{return (PTXF)new(g) DBMFAM(this);}
|
|
virtual int GetDelRows(void);
|
|
|
|
// Methods
|
|
virtual int GetNerr(void) {return Nerr;}
|
|
virtual int Cardinality(PGLOBAL g);
|
|
//virtual int GetRowID(void); // Temporarily suppressed
|
|
virtual bool AllocateBuffer(PGLOBAL g);
|
|
virtual int ReadBuffer(PGLOBAL g);
|
|
//virtual int WriteBuffer(PGLOBAL g);
|
|
virtual int DeleteRecords(PGLOBAL g, int irc);
|
|
virtual void Rewind(void);
|
|
|
|
protected:
|
|
// Members
|
|
//int Records; in TXTFAM
|
|
//int Headlen; in TXTFAM
|
|
}; // end of class DBFFAM
|
|
|
|
#endif // __FILAMDBF_H
|