📄 csqlrelay.c
字号:
/* Copyright (c) 2000 Roman Milner See the file COPYING for more information */#ifdef __CYGWIN__ #include <windows.h>#endif#include <Python.h>#include <sqlrelay/sqlrclient.h>#if PY_MAJOR_VERSION >= 2#if PY_MINOR_VERSION >= 3 #define SUPPORTS_UNSIGNED 1#endif#endifextern "C" {#define NEED_IS_NUMBER_TYPE_CHAR#include <datatypes.h>PyObject *decimalmodule=NULL;PyObject *decimal=NULL;static PyObject *sqlrcon_alloc(PyObject *self, PyObject *args) { sqlrconnection *sqlrcon; char *host; char *user; char *password; char *socket; uint16_t port; int32_t retrytime; int32_t tries; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "sHsssii",#else "shsssii",#endif &host, &port, &socket, &user, &password, &retrytime, &tries)) return NULL; sqlrcon = new sqlrconnection(host, port, socket, user, password, retrytime, tries); sqlrcon->copyReferences(); return Py_BuildValue("l", (long)sqlrcon);}static PyObject *sqlrcon_free(PyObject *self, PyObject *args) { long sqlrcon; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS delete ((sqlrconnection *)sqlrcon); Py_END_ALLOW_THREADS return Py_BuildValue("h", 0);}static PyObject *endSession(PyObject *self, PyObject *args) { long sqlrcon; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS ((sqlrconnection *)sqlrcon)->endSession(); Py_END_ALLOW_THREADS return Py_BuildValue("h", 0);}static PyObject *suspendSession(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->suspendSession(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *getConnectionPort(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; rc=((sqlrconnection *)sqlrcon)->getConnectionPort(); return Py_BuildValue("h", (short)rc);}static PyObject *getConnectionSocket(PyObject *self, PyObject *args) { long sqlrcon; const char *rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; rc=((sqlrconnection *)sqlrcon)->getConnectionSocket(); return Py_BuildValue("s", rc);}static PyObject *resumeSession(PyObject *self, PyObject *args) { long sqlrcon; uint16_t port; char *socket; bool rc; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "lHs",#else "lhs",#endif &sqlrcon, &port, &socket)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->resumeSession(port,socket); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *ping(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->ping(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *identify(PyObject *self, PyObject *args) { long sqlrcon; const char *rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->identify(); Py_END_ALLOW_THREADS return Py_BuildValue("s", rc);}static PyObject *dbVersion(PyObject *self, PyObject *args) { long sqlrcon; const char *rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->dbVersion(); Py_END_ALLOW_THREADS return Py_BuildValue("s", rc);}static PyObject *bindFormat(PyObject *self, PyObject *args) { long sqlrcon; const char *rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->bindFormat(); Py_END_ALLOW_THREADS return Py_BuildValue("s", rc);}static PyObject *autoCommitOn(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->autoCommitOn(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *autoCommitOff(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->autoCommitOff(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *commit(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->commit(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *rollback(PyObject *self, PyObject *args) { long sqlrcon; bool rc; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrconnection *)sqlrcon)->rollback(); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *debugOn(PyObject *self, PyObject *args) { long sqlrcon; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; ((sqlrconnection *)sqlrcon)->debugOn(); return Py_BuildValue("h", 0);}static PyObject *debugOff(PyObject *self, PyObject *args) { long sqlrcon; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; ((sqlrconnection *)sqlrcon)->debugOff(); return Py_BuildValue("h", 0);}static PyObject *getDebug(PyObject *self, PyObject *args) { long sqlrcon; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; return Py_BuildValue("h", (short)((sqlrconnection *)sqlrcon)->getDebug());}static PyObject *sqlrcur_alloc(PyObject *self, PyObject *args) { long sqlrcon; sqlrcursor *sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcon)) return NULL; sqlrcur = new sqlrcursor((sqlrconnection *)sqlrcon); sqlrcur->copyReferences(); return Py_BuildValue("l", (long)sqlrcur);}static PyObject *sqlrcur_free(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; Py_BEGIN_ALLOW_THREADS delete ((sqlrcursor *)sqlrcur); Py_END_ALLOW_THREADS return Py_BuildValue("h", 0);}static PyObject *setResultSetBufferSize(PyObject *self, PyObject *args) { long sqlrcur; uint64_t rows; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "lK",#else "lL",#endif &sqlrcur, &rows)) return NULL; ((sqlrcursor *)sqlrcur)->setResultSetBufferSize(rows); return Py_BuildValue("h", 0);}static PyObject *getResultSetBufferSize(PyObject *self, PyObject *args) { long sqlrcur; uint64_t rc; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; rc=((sqlrcursor *)sqlrcur)->getResultSetBufferSize(); // FIXME: lame, python doesn't support building values from uint64_t's return Py_BuildValue("l", (long)rc);}static PyObject *dontGetColumnInfo(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->dontGetColumnInfo(); return Py_BuildValue("h", 0);}static PyObject *getColumnInfo(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->getColumnInfo(); return Py_BuildValue("h", 0);}static PyObject *mixedCaseColumnNames(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->mixedCaseColumnNames(); return Py_BuildValue("h", 0);}static PyObject *upperCaseColumnNames(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->upperCaseColumnNames(); return Py_BuildValue("h", 0);}static PyObject *lowerCaseColumnNames(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->lowerCaseColumnNames(); return Py_BuildValue("h", 0);}static PyObject *cacheToFile(PyObject *self, PyObject *args) { long sqlrcur; char *filename; if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &filename)) return NULL; ((sqlrcursor *)sqlrcur)->cacheToFile(filename); return Py_BuildValue("h", 0);}static PyObject *setCacheTtl(PyObject *self, PyObject *args) { long sqlrcur; uint32_t ttl; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "lI",#else "li",#endif &sqlrcur, &ttl)) return NULL; ((sqlrcursor *)sqlrcur)->setCacheTtl(ttl); return Py_BuildValue("h", 0);}static PyObject *getCacheFileName(PyObject *self, PyObject *args) { long sqlrcur; const char *rc; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; rc=((sqlrcursor *)sqlrcur)->getCacheFileName(); return Py_BuildValue("s", rc);}static PyObject *cacheOff(PyObject *self, PyObject *args) { long sqlrcur; if (!PyArg_ParseTuple(args, "l", &sqlrcur)) return NULL; ((sqlrcursor *)sqlrcur)->cacheOff(); return Py_BuildValue("h", 0);}static PyObject *sendQuery(PyObject *self, PyObject *args) { char *sqlString; long sqlrcur; bool rc; if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &sqlString)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrcursor *)sqlrcur)->sendQuery(sqlString); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *sendQueryWithLength(PyObject *self, PyObject *args) { char *sqlString; long sqlrcur; uint32_t length; bool rc; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "lsI",#else "lsi",#endif &sqlrcur, &sqlString, &length)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrcursor *)sqlrcur)->sendQuery(sqlString,length); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *sendFileQuery(PyObject *self, PyObject *args) { char *path; char *file; long sqlrcur; bool rc; if (!PyArg_ParseTuple(args, "lss", &sqlrcur, &path, &file)) return NULL; Py_BEGIN_ALLOW_THREADS rc=((sqlrcursor *)sqlrcur)->sendFileQuery(path, file); Py_END_ALLOW_THREADS return Py_BuildValue("h", (short)rc);}static PyObject *prepareQuery(PyObject *self, PyObject *args) { long sqlrcur; char *sqlString; if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &sqlString)) return NULL; ((sqlrcursor *)sqlrcur)->prepareQuery(sqlString); return Py_BuildValue("h", 0);}static PyObject *prepareQueryWithLength(PyObject *self, PyObject *args) { char *sqlString; long sqlrcur; uint32_t length; if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED "lsI",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -