00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _CODBCTAPESTREAM_H
00010 #define _CODBCTAPESTREAM_H
00011
00012 #include <list>
00013
00014 #include <stdio.h>
00015 #include <string.h>
00016 #include <iostream>
00017
00018 #include <odbc++/preparedstatement.h>
00019 #include <odbc++/resultset.h>
00020
00021 using namespace odbc;
00022
00023 #include "ODBCConnHandle.h"
00024 #include "ODBCConnMgr.h"
00025 #include "TapeStream.h"
00026
00027 using namespace std;
00028
00029 class ODBCConnHandle;
00030
00031 class ODBCTapeStream : public TapeStream{
00032 public:
00033 ODBCTapeStream();
00034 ODBCTapeStream(char *, char *);
00035 ODBCTapeStream(char *, char *, char *);
00036 ODBCTapeStream(char *, char *, char *, char *, char *);
00037 virtual ~ODBCTapeStream();
00038
00039 int Open(char *, char *, char *);
00040 int Open(char *, char *, char *, char *, char *);
00041
00042
00043 virtual char *ReadLine(char *, unsigned int);
00044 virtual char *ReadLine();
00045 virtual int ReadShape(char *, float *);
00046 virtual int Write(char*);
00047 virtual int Write(char*, char*);
00048
00049 virtual void Close();
00050 void HardClose();
00051 virtual int Rewind();
00052 void Reset();
00053
00054 virtual void PrintHeader(char *, char *, char *, char *, char *, char *, long, long);
00055
00056 static TapeStream *OpenStream(void *, char *, char *);
00057 static void CloseStream(void *);
00058 static void CloseAllStream();
00059 protected:
00060 int line_cur, line_max;
00061 odbc::ResultSet *lines;
00062 ODBCConnHandle * dbconn;
00063 char objectname[64];
00064 static list<tapepair *> tslist;
00065 };
00066
00067 #endif