Version: 1.0.0
postgresql_interface.cpp
Go to the documentation of this file.
1 #include "wx/database/wxprec.h"
2 
3 #if wxUSE_DATABASE_POSTGRESQL
4 
6 {
7 #ifdef __WIN32__
8  bool bLoaded = m_PostgresDLL.Load(wxT("libpq.dll"), wxDL_VERBATIM);
9 #else
10  bool bLoaded = m_PostgresDLL.Load(wxDynamicLibrary::CanonicalizeName(wxT("pq")));
11 #endif
12  if (!bLoaded)
13  {
14  return false;
15  }
16 
17  wxString symbol = wxT("PQstatus");
18  if (m_PostgresDLL.HasSymbol(symbol))
19  {
20  m_pPQstatus = (PQstatusType)m_PostgresDLL.GetSymbol(symbol);
21  }
22  else
23  {
24  return false;
25  }
26 
27  symbol = wxT("PQsetdbLogin");
28  if (m_PostgresDLL.HasSymbol(symbol))
29  {
30  m_pPQsetdbLogin = (PQsetdbLoginType)m_PostgresDLL.GetSymbol(symbol);
31  }
32  else
33  {
34  return false;
35  }
36 
37  symbol = wxT("PQerrorMessage");
38  if (m_PostgresDLL.HasSymbol(symbol))
39  {
41  }
42  else
43  {
44  return false;
45  }
46 
47  symbol = wxT("PQclientEncoding");
48  if (m_PostgresDLL.HasSymbol(symbol))
49  {
51  }
52  else
53  {
54  return false;
55  }
56 
57  symbol = wxT("PQsetClientEncoding");
58  if (m_PostgresDLL.HasSymbol(symbol))
59  {
61  }
62  else
63  {
64  return false;
65  }
66 
67  symbol = wxT("pg_encoding_to_char");
68  if (m_PostgresDLL.HasSymbol(symbol))
69  {
71  }
72  else
73  {
74  return false;
75  }
76 
77  symbol = wxT("PQfinish");
78  if (m_PostgresDLL.HasSymbol(symbol))
79  {
80  m_pPQfinish = (PQfinishType)m_PostgresDLL.GetSymbol(symbol);
81  }
82  else
83  {
84  return false;
85  }
86 
87  symbol = wxT("PQexec");
88  if (m_PostgresDLL.HasSymbol(symbol))
89  {
90  m_pPQexec = (PQexecType)m_PostgresDLL.GetSymbol(symbol);
91  }
92  else
93  {
94  return false;
95  }
96 
97  symbol = wxT("PQresultStatus");
98  if (m_PostgresDLL.HasSymbol(symbol))
99  {
101  }
102  else
103  {
104  return false;
105  }
106 
107  symbol = wxT("PQclear");
108  if (m_PostgresDLL.HasSymbol(symbol))
109  {
110  m_pPQclear = (PQclearType)m_PostgresDLL.GetSymbol(symbol);
111  }
112  else
113  {
114  return false;
115  }
116 
117  symbol = wxT("PQcmdTuples");
118  if (m_PostgresDLL.HasSymbol(symbol))
119  {
120  m_pPQcmdTuples = (PQcmdTuplesType)m_PostgresDLL.GetSymbol(symbol);
121  }
122  else
123  {
124  return false;
125  }
126 
127  symbol = wxT("PQprepare");
128  if (m_PostgresDLL.HasSymbol(symbol))
129  {
130  m_pPQprepare = (PQprepareType)m_PostgresDLL.GetSymbol(symbol);
131  }
132  else
133  {
134  return false;
135  }
136 
137  symbol = wxT("PQresultStatus");
138  if (m_PostgresDLL.HasSymbol(symbol))
139  {
141  }
142  else
143  {
144  return false;
145  }
146 
147  symbol = wxT("PQexecPrepared");
148  if (m_PostgresDLL.HasSymbol(symbol))
149  {
151  }
152  else
153  {
154  return false;
155  }
156 
157  symbol = wxT("PQresultErrorMessage");
158  if (m_PostgresDLL.HasSymbol(symbol))
159  {
161  }
162  else
163  {
164  return false;
165  }
166 
167  symbol = wxT("PQntuples");
168  if (m_PostgresDLL.HasSymbol(symbol))
169  {
170  m_pPQntuples = (PQntuplesType)m_PostgresDLL.GetSymbol(symbol);
171  }
172  else
173  {
174  return false;
175  }
176 
177  symbol = wxT("PQbinaryTuples");
178  if (m_PostgresDLL.HasSymbol(symbol))
179  {
181  }
182  else
183  {
184  return false;
185  }
186 
187  symbol = wxT("PQfname");
188  if (m_PostgresDLL.HasSymbol(symbol))
189  {
190  m_pPQfname = (PQfnameType)m_PostgresDLL.GetSymbol(symbol);
191  }
192  else
193  {
194  return false;
195  }
196 
197  symbol = wxT("PQgetisnull");
198  if (m_PostgresDLL.HasSymbol(symbol))
199  {
200  m_pPQgetisnull = (PQgetisnullType)m_PostgresDLL.GetSymbol(symbol);
201  }
202  else
203  {
204  return false;
205  }
206 
207  symbol = wxT("PQgetvalue");
208  if (m_PostgresDLL.HasSymbol(symbol))
209  {
210  m_pPQgetvalue = (PQgetvalueType)m_PostgresDLL.GetSymbol(symbol);
211  }
212  else
213  {
214  return false;
215  }
216 
217  symbol = wxT("PQgetlength");
218  if (m_PostgresDLL.HasSymbol(symbol))
219  {
220  m_pPQgetlength = (PQgetlengthType)m_PostgresDLL.GetSymbol(symbol);
221  }
222  else
223  {
224  return false;
225  }
226 
227  symbol = wxT("PQunescapeBytea");
228  if (m_PostgresDLL.HasSymbol(symbol))
229  {
231  }
232  else
233  {
234  return false;
235  }
236 
237  symbol = wxT("PQnfields");
238  if (m_PostgresDLL.HasSymbol(symbol))
239  {
240  m_pPQnfields = (PQnfieldsType)m_PostgresDLL.GetSymbol(symbol);
241  }
242  else
243  {
244  return false;
245  }
246 
247  symbol = wxT("PQfreemem");
248  if (m_PostgresDLL.HasSymbol(symbol))
249  {
250  m_pPQfreemem = (PQfreememType)m_PostgresDLL.GetSymbol(symbol);
251  }
252  else
253  {
254  return false;
255  }
256 
257  symbol = wxT("PQftype");
258  if (m_PostgresDLL.HasSymbol(symbol))
259  {
260  m_pPQftype = (PQftypeType)m_PostgresDLL.GetSymbol(symbol);
261  }
262  else
263  {
264  return false;
265  }
266 
267  return true;
268 }
269 
270 #endif//wxUSE_DATABASE_POSTGRESQL
PQencodingToCharType m_pPQencodingToChar
char *(* PQerrorMessageType)(const PGconn *)
int(* PQclientEncodingType)(const PGconn *)
int(* PQbinaryTuplesType)(const PGresult *)
char *(* PQresultErrorMessageType)(const PGresult *)
char *(* PQgetvalueType)(const PGresult *, int, int)
int(* PQsetClientEncodingType)(const PGconn *, const char *)
int(* PQgetlengthType)(const PGconn *)
void(* PQfreememType)(void *)
PGconn *(* PQsetdbLoginType)(const char *, const char *, const char *, const char *, const char *, const char *, const char *)
void(* PQclearType)(PGresult *)
PQsetClientEncodingType m_pPQsetClientEncoding
PQexecPreparedType m_pPQexecPrepared
char *(* PQfnameType)(const PGresult *, int)
int(* PQntuplesType)(const PGresult *)
int(* PQnfieldsType)(const PGresult *)
PQerrorMessageType m_pPQerrorMessage
PQunescapeByteaType m_pPQunescapeBytea
PGresult *(* PQexecType)(const PGconn *, const char *)
char *(* PQcmdTuplesType)(const PGresult *)
void(* PQfinishType)(const PGconn *)
unsigned char *(* PQunescapeByteaType)(const unsigned char *, size_t *)
PGresult *(* PQprepareType)(PGconn *, const char *, const char *, int, const Oid *)
int(* PQgetisnullType)(const PGresult *, int, int)
PQresultStatusType m_pPQresultStatus
PQbinaryTuplesType m_pPQbinaryTuples
Oid(* PQftypeType)(const PGresult *, int)
const char *(* PQencodingToCharType)(int)
PGresult *(* PQexecPreparedType)(PGconn *, const char *, int, const char *const *, const int *, const int *, int resultFormat)
PQclientEncodingType m_pPQclientEncoding
ConnStatusType(* PQstatusType)(const PGconn *)
PQresultErrorMessageType m_pPQresultErrorMessage
ExecStatusType(* PQresultStatusType)(const PGresult *)