NCBI C++ ToolKit
sdbapi_impl.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef CPPCORE__DBAPI__SIMPLE__SDBAPI_IMPL__HPP
2 #define CPPCORE__DBAPI__SIMPLE__SDBAPI_IMPL__HPP
3 
4 /* $Id: sdbapi_impl.hpp 97607 2022-08-03 14:42:32Z ucko $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Author: Pavel Ivanov
30  *
31  * File Description:
32  *
33  */
34 
35 #include <corelib/ncbiobj.hpp>
36 #include <dbapi/dbapi.hpp>
37 
38 #include <dbapi/simple/sdbapi.hpp>
39 
41 
42 class CConnHolder;
43 
45 {
46 public:
48  : m_Conn(conn)
49  { }
50  bool HandleIt(CDB_Exception* ex);
51  bool HandleMessage(int severity, int msgnum, const string& message);
52 
53 private:
55 };
56 
57 class CConnHolder : public CObject
58 {
59 public:
61  virtual ~CConnHolder(void);
62 
63  IConnection* GetConn(void) const;
64  void AddOpenRef(void);
65  void CloseRef(void);
66 
67  const CDB_Exception::SContext& GetContext(void) const;
68  void SetTimeout(const CTimeout& timeout);
69  void ResetTimeout(void);
70  const list<string>& GetPrintOutput(void) const;
71  void ResetPrintOutput();
72 
73 private:
76 
83  list<string> m_PrintOutput;
87 
88  friend class CSDB_UserHandler;
89 };
90 
91 class CDatabaseImpl : public CObject
92 {
93 public:
94  CDatabaseImpl(void);
95  CDatabaseImpl(const CDatabaseImpl& other);
96  ~CDatabaseImpl(void);
97 
98  void Connect(const CSDB_ConnectionParam& params);
99  bool IsOpen() const;
100  bool EverConnected() const;
101  void Close();
102 
103  IConnection* GetConnection(void);
104  void SetTimeout(const CTimeout& timeout);
105  void ResetTimeout(void);
106  const list<string>& GetPrintOutput(void) const;
107  void ResetPrintOutput();
108 
109  const CDB_Exception::SContext& GetContext(void) const;
110 
111 private:
113  bool m_IsOpen;
115 };
116 
117 
118 class CBulkInsertImpl : public CObject
119 {
120 public:
122  const string& tableName,
123  int autoflush);
124  ~CBulkInsertImpl(void);
125 
126  void SetHints(CTempString hints);
127  void AddHint(IBulkInsert::EHints hint, unsigned int value);
129 
130  void Bind(int col, ESDB_Type type);
131  void EndRow(void);
132  void Complete(void);
133 
134  void WriteNull(void);
135  template <class T>
136  void WriteVal(const T& val);
137 
138 private:
139  void x_CheckCanWrite(int col);
140  void x_CheckWriteStarted(void);
141 
142  const CDB_Exception::SContext& x_GetContext(void) const;
143 
146  vector<CVariant> m_Cols;
151 
153 };
154 
155 
157 {
158 public:
159  virtual ~IQueryFieldBasis() { }
160 
161  virtual const CVariant* GetValue(void) const = 0;
162  virtual const CDB_Exception::SContext& x_GetContext(void) const = 0;
163 
164  virtual CNcbiOstream* GetOStream(size_t blob_size,
165  TBlobOStreamFlags flags) const;
166  virtual CBlobBookmark GetBookmark(void) const;
167 };
168 
170 {
171 public:
172  CRemoteQFB(CQueryImpl& query, unsigned int col_num)
173  : m_Query(query), m_ColNum(col_num)
174  { }
175 
176  const CVariant* GetValue(void) const override;
177  const CDB_Exception::SContext& x_GetContext(void) const override;
178 
179  CNcbiOstream* GetOStream(size_t blob_size,
180  TBlobOStreamFlags flags) const override;
181  CBlobBookmark GetBookmark(void) const override;
182 
183 private:
185  unsigned int m_ColNum;
186 };
187 
189 {
190 public:
193  { }
194 
195  const CVariant* GetValue(void) const override
196  { return m_Value.get(); }
197  const CDB_Exception::SContext& x_GetContext(void) const override
198  { return *m_Context; }
199 
200 private:
201  unique_ptr<CVariant> m_Value;
202  unique_ptr<CDB_Exception::SContext> m_Context;
203 };
204 
205 class CParamQFB : public CLocalQFB
206 {
207 public:
209  ESP_ParamType param_type)
210  : CLocalQFB(value, context), m_ParamType(param_type)
211  { }
212 
213  ESP_ParamType GetParamType(void) const { return m_ParamType; }
215 
216 private:
218 };
219 
220 
221 class CQueryFieldImpl : public CObject
222 {
223 public:
224  CQueryFieldImpl(CQueryImpl* q, unsigned int col_num);
225  CQueryFieldImpl(CQueryImpl* q, CVariant* v, ESP_ParamType param_type);
226 
227  virtual CRef<CQueryFieldImpl> Detach(void);
228 
229  const CVariant* GetValue(void) const;
230  virtual CNcbiIstream& AsIStream(void) const;
231  virtual const vector<unsigned char>& AsVector(void) const;
232  virtual CNcbiOstream& GetOStream(size_t blob_size,
233  TBlobOStreamFlags flags) const;
234  virtual CBlobBookmark GetBookmark(void) const;
235 
236 protected:
237  friend class CQueryImpl;
238 
239  // Takes ownership of *qf.m_Basis!
241 
242  const CDB_Exception::SContext& x_GetContext(void) const;
243 
244  unique_ptr<IQueryFieldBasis> m_Basis;
245 };
246 
248 {
249 public:
250  CQueryBlobImpl(CQueryImpl* q, unsigned int col_num);
251  CQueryBlobImpl(CQueryImpl* q, CVariant* v, ESP_ParamType param_type);
252 
253  CRef<CQueryFieldImpl> Detach(void) override;
254 
255  CNcbiIstream& AsIStream(void) const override;
256  const vector<unsigned char>& AsVector(void) const override;
257  CNcbiOstream& GetOStream(size_t blob_size,
258  TBlobOStreamFlags flags) const override;
259  CBlobBookmark GetBookmark(void) const override;
260 
261 private:
262  // Takes ownership of *qb.m_Basis!
264 
265  /// Vector to cache BLOB value
266  mutable vector<unsigned char> m_Vector;
267  /// String to cache BLOB value
268  mutable string m_ValueForStream;
269  /// Stream to cache BLOB value
270  mutable unique_ptr<CNcbiIstrstream> m_IStream;
271  /// Stream to change BLOB value
272  mutable unique_ptr<CNcbiOstream> m_OStream;
273 };
274 
275 struct SQueryRSMetaData : public CObject
276 {
278 
280  vector<string> col_names;
281  vector<ESDB_Type> col_types;
282 
284 };
285 
286 class CQueryImpl: public CObject
287 {
288 public:
289  CQueryImpl(CDatabaseImpl* db_impl);
290  ~CQueryImpl(void);
291 
292  template <class T>
293  void SetParameter(CTempString name, const T& value, ESDB_Type type, ESP_ParamType param_type);
294  void SetNullParameter(CTempString name, ESDB_Type type, ESP_ParamType param_type);
296  void ClearParameter(CTempString name);
297  void ClearParameters(void);
298 
299  void SetSql(CTempString sql);
300  void Execute(const CTimeout& timeout);
301  void ExecuteSP(CTempString sp, const CTimeout& timeout);
302  void Cancel(void);
303  bool HasMoreResultSets(void);
304  void PurgeResults(void);
305  void BeginNewRS(void);
306  void Next(void);
307  void RequireRowCount(unsigned int min_rows, unsigned int max_rows);
309  const CQuery::CRow& GetRow(void) const;
310  const CQuery::CField& GetColumn(const CDBParamVariant& col) const;
311  const CVariant& GetFieldValue(unsigned int col_num);
312  bool IsFinished(CQuery::EHowMuch how_much = CQuery::eThisResultSet) const;
313 
314  void SetIgnoreBounds(bool is_ignore);
315  unsigned int GetResultSetNo(void) const;
316  unsigned int GetRowNo(CQuery::EHowMuch how_much = CQuery::eAllResultSets) const;
317  int GetRowCount(void) const;
318  int GetStatus(void) const;
319  unsigned int GetTotalColumns(void) const;
320  string GetColumnName(unsigned int col) const;
321  ESDB_Type GetColumnType(unsigned int col) const;
322 
323  CDatabaseImpl* GetDatabase(void) const;
324  IConnection* GetConnection(void);
325 
326  const list<string>& GetPrintOutput(void) const;
327  // Historically private, but useful for CQuery's inner classes too.
328  const CDB_Exception::SContext& x_GetContext(void) const;
329 
330  unsigned int GetMinRowCount(void) const
331  { return m_MinRowCount; }
332  unsigned int GetMaxRowCount(void) const
333  { return m_MaxRowCount; }
334 
335 private:
336  void x_CheckCanWork(bool need_rs = false) const;
337  void x_SetOutParameter(const string& name, const CVariant& value);
338  void x_ClearAllParams(void);
339  void x_CheckRowCount(void);
340  bool x_Fetch(void);
341  void x_InitBeforeExec(void);
342  void x_InitRSFields(void);
343  void x_DetachAllFields(void);
344  void x_Close(void);
345 
346 
348 
353  string m_Sql;
361  bool m_IsSP;
363  unsigned int m_CurRSNo;
364  unsigned int m_CurRowNo;
365  unsigned int m_CurRelRowNo;
366  unsigned int m_MinRowCount;
367  unsigned int m_MaxRowCount;
369  int m_Status;
372 };
373 
374 
376 {
377 public:
379 
380  CNcbiOstream& GetOStream(size_t blob_size, TBlobOStreamFlags flags);
381 
382 private:
384 
386  unique_ptr<I_BlobDescriptor> m_Descr;
387  unique_ptr<CWStream> m_OStream;
388 };
389 
391 
392 #endif // CPPCORE__DBAPI__SIMPLE__SDBAPI_IMPL__HPP
unique_ptr< I_BlobDescriptor > m_Descr
CRef< CDatabaseImpl > m_DBImpl
unique_ptr< CWStream > m_OStream
const CDB_Exception::SContext & x_GetContext(void) const
CNcbiOstream & GetOStream(size_t blob_size, TBlobOStreamFlags flags)
Definition: sdbapi.cpp:3463
CBlobBookmarkImpl(CDatabaseImpl *db_impl, I_BlobDescriptor *descr)
Definition: sdbapi.cpp:3456
Object used to store bookmarks to blobs to be changed later.
Definition: sdbapi.hpp:766
void WriteNull(void)
Definition: sdbapi.cpp:2323
void x_CheckCanWrite(int col)
Definition: sdbapi.cpp:2209
CRef< CDB_Exception::SContext > m_Context
void Bind(int col, ESDB_Type type)
Definition: sdbapi.cpp:2252
void Complete(void)
Definition: sdbapi.cpp:2292
void AddOrderHint(CTempString columns)
Definition: sdbapi.cpp:2245
void x_CheckWriteStarted(void)
Definition: sdbapi.cpp:2308
void EndRow(void)
Definition: sdbapi.cpp:2271
CBulkInsertImpl(CDatabaseImpl *db_impl, const string &tableName, int autoflush)
Definition: sdbapi.cpp:2176
const CDB_Exception::SContext & x_GetContext(void) const
Definition: sdbapi.cpp:2203
~CBulkInsertImpl(void)
Definition: sdbapi.cpp:2191
void WriteVal(const T &val)
Definition: sdbapi.cpp:2331
void SetHints(CTempString hints)
Definition: sdbapi.cpp:2231
CRef< CDatabaseImpl > m_DBImpl
void AddHint(IBulkInsert::EHints hint, unsigned int value)
Definition: sdbapi.cpp:2238
IBulkInsert * m_BI
vector< CVariant > m_Cols
void SetTimeout(const CTimeout &timeout)
Definition: sdbapi.cpp:1839
CMutex m_Mutex
Definition: sdbapi_impl.hpp:86
void ResetTimeout(void)
Definition: sdbapi.cpp:1855
CRef< CDB_Exception::SContext > m_Context
Definition: sdbapi_impl.hpp:84
virtual ~CConnHolder(void)
Definition: sdbapi.cpp:1811
CConnHolder(const CConnHolder &)
bool m_ContinueAfterRaiserror
Definition: sdbapi_impl.hpp:80
list< string > m_PrintOutput
Definition: sdbapi_impl.hpp:83
void CloseRef(void)
Definition: sdbapi.cpp:1830
CRef< CSDB_UserHandler > m_Handler
Definition: sdbapi_impl.hpp:85
CConnHolder & operator=(const CConnHolder &)
void ResetPrintOutput()
Definition: sdbapi.cpp:1871
Uint4 m_CntOpen
Definition: sdbapi_impl.hpp:82
IConnection * GetConn(void) const
Definition: sdbapi.cpp:1817
bool m_HasCustomTimeout
Definition: sdbapi_impl.hpp:79
void AddOpenRef(void)
Definition: sdbapi.cpp:1823
CConnHolder(IConnection *conn, const CSDB_ConnectionParam &params)
Definition: sdbapi.cpp:1789
bool m_LogMinorMessages
Definition: sdbapi_impl.hpp:81
const CDB_Exception::SContext & GetContext(void) const
Definition: sdbapi.cpp:1878
size_t m_DefaultTimeout
Definition: sdbapi_impl.hpp:78
IConnection * m_Conn
Definition: sdbapi_impl.hpp:77
const list< string > & GetPrintOutput(void) const
Definition: sdbapi.cpp:1865
CDB_Exception –.
Definition: exception.hpp:118
void ResetPrintOutput()
Definition: sdbapi.cpp:1967
void Connect(const CSDB_ConnectionParam &params)
Definition: sdbapi.cpp:1885
~CDatabaseImpl(void)
Definition: sdbapi.cpp:1922
CRef< CConnHolder > m_Conn
const list< string > & GetPrintOutput(void) const
Definition: sdbapi.cpp:1961
IConnection * GetConnection(void)
Definition: sdbapi.cpp:1943
void ResetTimeout(void)
Definition: sdbapi.cpp:1955
CDatabaseImpl(void)
Definition: sdbapi.cpp:1897
bool IsOpen() const
Definition: sdbapi.cpp:1931
const CDB_Exception::SContext & GetContext(void) const
Definition: sdbapi.cpp:1974
bool EverConnected() const
Definition: sdbapi.cpp:1937
void Close()
Definition: sdbapi.cpp:1913
void SetTimeout(const CTimeout &timeout)
Definition: sdbapi.cpp:1949
const CDB_Exception::SContext & x_GetContext(void) const override
CLocalQFB(CVariant *value, const CDB_Exception::SContext &context)
const CVariant * GetValue(void) const override
unique_ptr< CVariant > m_Value
unique_ptr< CDB_Exception::SContext > m_Context
CMutex –.
Definition: ncbimtx.hpp:749
CObject –.
Definition: ncbiobj.hpp:180
ESP_ParamType GetParamType(void) const
void SetParamType(ESP_ParamType type)
ESP_ParamType m_ParamType
CParamQFB(CVariant *value, const CDB_Exception::SContext &context, ESP_ParamType param_type)
unique_ptr< CNcbiIstrstream > m_IStream
Stream to cache BLOB value.
CRef< CQueryFieldImpl > Detach(void) override
Definition: sdbapi.cpp:3641
const vector< unsigned char > & AsVector(void) const override
Definition: sdbapi.cpp:3750
CNcbiOstream & GetOStream(size_t blob_size, TBlobOStreamFlags flags) const override
Definition: sdbapi.cpp:3830
CBlobBookmark GetBookmark(void) const override
Definition: sdbapi.cpp:3872
CQueryBlobImpl(CQueryImpl *q, unsigned int col_num)
Definition: sdbapi.cpp:2554
string m_ValueForStream
String to cache BLOB value.
CNcbiIstream & AsIStream(void) const override
Definition: sdbapi.cpp:3779
vector< unsigned char > m_Vector
Vector to cache BLOB value.
unique_ptr< CNcbiOstream > m_OStream
Stream to change BLOB value.
const CDB_Exception::SContext & x_GetContext(void) const
Definition: sdbapi.cpp:3658
virtual CNcbiOstream & GetOStream(size_t blob_size, TBlobOStreamFlags flags) const
Definition: sdbapi.cpp:3823
virtual CNcbiIstream & AsIStream(void) const
Definition: sdbapi.cpp:3771
const CVariant * GetValue(void) const
Definition: sdbapi.cpp:3664
virtual CRef< CQueryFieldImpl > Detach(void)
Definition: sdbapi.cpp:3632
virtual const vector< unsigned char > & AsVector(void) const
Definition: sdbapi.cpp:3742
CQueryFieldImpl(CQueryImpl *q, unsigned int col_num)
Definition: sdbapi.cpp:2533
unique_ptr< IQueryFieldBasis > m_Basis
virtual CBlobBookmark GetBookmark(void) const
Definition: sdbapi.cpp:3865
void Next(void)
Definition: sdbapi.cpp:3321
unsigned int GetRowNo(CQuery::EHowMuch how_much=CQuery::eAllResultSets) const
Definition: sdbapi.cpp:3044
const list< string > & GetPrintOutput(void) const
Definition: sdbapi.cpp:3449
void SetSql(CTempString sql)
Definition: sdbapi.cpp:2888
ICallableStatement * m_CallStmt
unsigned int GetResultSetNo(void) const
Definition: sdbapi.cpp:3037
void x_InitRSFields(void)
Definition: sdbapi.cpp:3135
void ClearParameter(CTempString name)
Definition: sdbapi.cpp:2857
unsigned int m_MaxRowCount
unsigned int GetMaxRowCount(void) const
bool x_Fetch(void)
Definition: sdbapi.cpp:3114
void x_CheckCanWork(bool need_rs=false) const
Definition: sdbapi.cpp:2738
void SetNullParameter(CTempString name, ESDB_Type type, ESP_ParamType param_type)
Definition: sdbapi.cpp:2782
void x_SetOutParameter(const string &name, const CVariant &value)
Definition: sdbapi.cpp:2809
void BeginNewRS(void)
Definition: sdbapi.cpp:3227
void Cancel(void)
Definition: sdbapi.cpp:3019
IStatement * m_Stmt
void SetParameter(CTempString name, const T &value, ESDB_Type type, ESP_ParamType param_type)
Definition: sdbapi.cpp:2754
CRef< CDatabaseImpl > m_DBImpl
bool m_RSFinished
int GetStatus(void) const
Definition: sdbapi.cpp:3068
void x_InitBeforeExec(void)
Definition: sdbapi.cpp:2939
void Execute(const CTimeout &timeout)
Definition: sdbapi.cpp:2957
void ExecuteSP(CTempString sp, const CTimeout &timeout)
Definition: sdbapi.cpp:2986
unsigned int GetMinRowCount(void) const
string m_Sql
CDatabaseImpl * GetDatabase(void) const
Definition: sdbapi.cpp:3437
bool m_HasExplicitMode
void SetIgnoreBounds(bool is_ignore)
Definition: sdbapi.cpp:3028
bool m_ReportedWrongRowCount
void x_Close(void)
Definition: sdbapi.cpp:2906
CQueryImpl(CDatabaseImpl *db_impl)
Definition: sdbapi.cpp:2673
map< string, CQuery::CField > TParamsMap
unsigned int m_MinRowCount
void x_ClearAllParams(void)
Definition: sdbapi.cpp:2870
unsigned int GetTotalColumns(void) const
Definition: sdbapi.cpp:3293
CRef< CDB_Exception::SContext > m_Context
string GetColumnName(unsigned int col) const
Definition: sdbapi.cpp:3300
bool m_IgnoreBounds
const CQuery::CField & GetParameter(CTempString name)
Definition: sdbapi.cpp:2834
void ClearParameters(void)
Definition: sdbapi.cpp:2880
IConnection * GetConnection(void)
Definition: sdbapi.cpp:3443
const CQuery::CRow & GetRow(void) const
Definition: sdbapi.cpp:3423
CQuery::CRow m_Row
bool HasMoreResultSets(void)
Definition: sdbapi.cpp:3144
void PurgeResults(void)
Definition: sdbapi.cpp:3261
TParamsMap m_Params
bool m_RowUnderConstruction
~CQueryImpl(void)
Definition: sdbapi.cpp:2698
void x_DetachAllFields(void)
Definition: sdbapi.cpp:2898
ESDB_Type GetColumnType(unsigned int col) const
Definition: sdbapi.cpp:3307
unsigned int m_CurRelRowNo
IResultSet * m_CurRS
void RequireRowCount(unsigned int min_rows, unsigned int max_rows)
Definition: sdbapi.cpp:3329
unsigned int m_CurRSNo
const CQuery::CField & GetColumn(const CDBParamVariant &col) const
Definition: sdbapi.cpp:3430
void x_CheckRowCount(void)
Definition: sdbapi.cpp:3080
bool IsFinished(CQuery::EHowMuch how_much=CQuery::eThisResultSet) const
Definition: sdbapi.cpp:3393
void VerifyDone(CQuery::EHowMuch how_much=CQuery::eThisResultSet)
Definition: sdbapi.cpp:3352
const CDB_Exception::SContext & x_GetContext(void) const
Definition: sdbapi.cpp:2709
unsigned int m_CurRowNo
int GetRowCount(void) const
Definition: sdbapi.cpp:3055
bool m_RSBeginned
const CVariant & GetFieldValue(unsigned int col_num)
Definition: sdbapi.cpp:2828
Class representing value in result set or output parameter of stored procedure.
Definition: sdbapi.hpp:258
A full row of result data.
Definition: sdbapi.hpp:384
EHowMuch
Whether to consider just the current result set or all result sets, in MultiSet mode.
Definition: sdbapi.hpp:662
@ eAllResultSets
Definition: sdbapi.hpp:664
@ eThisResultSet
Definition: sdbapi.hpp:663
CRemoteQFB(CQueryImpl &query, unsigned int col_num)
CBlobBookmark GetBookmark(void) const override
Definition: sdbapi.cpp:3856
CQueryImpl & m_Query
unsigned int m_ColNum
const CDB_Exception::SContext & x_GetContext(void) const override
Definition: sdbapi.cpp:2520
const CVariant * GetValue(void) const override
Definition: sdbapi.cpp:2515
CNcbiOstream * GetOStream(size_t blob_size, TBlobOStreamFlags flags) const override
Definition: sdbapi.cpp:3806
Convenience class to initialize database connection parameters from URL-like strings and/or applicati...
Definition: sdbapi.hpp:933
bool HandleIt(CDB_Exception *ex)
Handle the exceptions resulting from a native API call, one-by-one.
Definition: sdbapi.cpp:1745
CSDB_UserHandler(CConnHolder &conn)
Definition: sdbapi_impl.hpp:47
bool HandleMessage(int severity, int msgnum, const string &message)
Handle message resulting from a native API call.
Definition: sdbapi.cpp:1758
CConnHolder & m_Conn
Definition: sdbapi_impl.hpp:54
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Definition: tempstr.hpp:65
CTimeout – Timeout interval.
Definition: ncbitime.hpp:1693
CVariant –.
Definition: variant.hpp:99
IBulkInsert –.
Definition: dbapi.hpp:665
ICallableStatement –.
Definition: dbapi.hpp:510
virtual const CDB_Exception::SContext & x_GetContext(void) const =0
virtual const CVariant * GetValue(void) const =0
virtual CBlobBookmark GetBookmark(void) const
Definition: sdbapi.cpp:3850
virtual CNcbiOstream * GetOStream(size_t blob_size, TBlobOStreamFlags flags) const
Definition: sdbapi.cpp:3800
virtual ~IQueryFieldBasis()
I_BlobDescriptor::
Definition: interfaces.hpp:369
static uch flags
#define T(s)
Definition: common.h:230
Defines the database API innterfaces for a variety of DBMS.
static CS_CONNECTION * conn
Definition: ct_dynamic.c:25
static int type
Definition: getdata.c:31
static char sql[1024]
Definition: putdata.c:19
static const column_t columns[]
Definition: utf8_2.c:22
EHints
Type of hint that can be set.
Definition: dbapi.hpp:674
int TBlobOStreamFlags
Definition: dbapi.hpp:97
uint32_t Uint4
4-byte (32-bit) unsigned integer
Definition: ncbitype.h:103
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
Definition: ncbistre.hpp:146
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
ESDB_Type
Database types used throughout API.
Definition: sdbapi.hpp:172
ESP_ParamType
Stored procedure and statement parameter types.
Definition: sdbapi.hpp:194
vector< ESDB_Type > col_types
map< string, int > TColNumsMap
TColNumsMap col_nums
vector< string > col_names
CConstRef< CDB_Exception::SContext > exception_context
static string query
Definition: type.c:6
static CS_CONTEXT * context
Definition: will_convert.c:21
Modified on Wed Jun 12 11:15:44 2024 by modify_doxy.py rev. 669887