⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csqlrelay.c

📁 适合于Unix/Linux下的一个持久数据库连接池
💻 C
📖 第 1 页 / 共 4 页
字号:
#else	"lsi",#endif	&sqlrcur, &sqlString, &length))    return NULL;  ((sqlrcursor *)sqlrcur)->prepareQuery(sqlString,length);  return Py_BuildValue("h", 0);}static PyObject *prepareFileQuery(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)->prepareFileQuery(path, file);  Py_END_ALLOW_THREADS  return Py_BuildValue("h", (short)rc);}static PyObject *substitution(PyObject *self, PyObject *args) {  long sqlrcur;  char *variable;  PyObject *value;  uint32_t precision;  uint32_t scale;  uint16_t success;  if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED	"lsOII",#else	"lsOii",#endif	&sqlrcur, &variable, &value, &precision, &scale))    return NULL;  success=1;  if (value==Py_None) {    ((sqlrcursor *)sqlrcur)->substitution(variable, (char *)NULL);  } else if (PyString_Check(value)) {    ((sqlrcursor *)sqlrcur)->substitution(variable, PyString_AsString(value));  } else if (PyInt_Check(value)) {    ((sqlrcursor *)sqlrcur)->substitution(variable, (int64_t)PyInt_AsLong(value));  } else if (PyFloat_Check(value)) {    ((sqlrcursor *)sqlrcur)->substitution(variable, (double)PyFloat_AsDouble(value), precision, scale);  } else {    success=0;  }  return Py_BuildValue("h", success);}static PyObject *substitutions(PyObject *self, PyObject *args) {  PyObject *variables;  PyObject *values;  PyObject *precisions;  PyObject *scales;  long sqlrcur;  char *variable;  uint16_t success;  PyObject *value;  if (!PyArg_ParseTuple(args, "lOOOO", &sqlrcur, &variables, &values, &precisions, &scales))    return NULL;  success=1;  if (PyList_Check(variables) && PyList_Check(values)) {    for (int i=0; i<PyList_Size(variables); i++) {      variable=PyString_AsString(PyList_GetItem(variables,i));      value=PyList_GetItem(values,i);      if (value==Py_None) {        ((sqlrcursor *)sqlrcur)->substitution(variable, (char *)NULL);      } else if (PyString_Check(value)) {        ((sqlrcursor *)sqlrcur)->substitution(variable, PyString_AsString(value));      } else if (PyInt_Check(value)) {        ((sqlrcursor *)sqlrcur)->substitution(variable, (int64_t)PyInt_AsLong(value));      } else if (PyFloat_Check(value)) {        ((sqlrcursor *)sqlrcur)->substitution(variable, (double)PyFloat_AsDouble(value), (uint32_t)PyInt_AsLong(PyList_GetItem(precisions,i)), (uint32_t)PyInt_AsLong(PyList_GetItem(scales,i)));      } else {        success=0;      }    }  }  return Py_BuildValue("h", success);}static PyObject *clearBinds(PyObject *self, PyObject *args) {  long sqlrcur;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  ((sqlrcursor *)sqlrcur)->clearBinds();  return Py_BuildValue("h", 0);}static PyObject *countBindVariables(PyObject *self, PyObject *args) {  long sqlrcur;  uint16_t rc;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  rc=((sqlrcursor *)sqlrcur)->countBindVariables();  // FIXME: lame, python doesn't support building values from uint16_t's  return Py_BuildValue("h", (short)rc);}static PyObject *inputBind(PyObject *self, PyObject *args) {  char *variable;  PyObject *value;  uint32_t precision;  uint32_t scale;  long sqlrcur;  uint16_t success;  if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED	"lsOII",#else	"lsOii",#endif	&sqlrcur, &variable, &value, &precision, &scale))    return NULL;  success=1;  if (value==Py_None) {    ((sqlrcursor *)sqlrcur)->inputBind(variable, (char *)NULL);  } else if (PyString_Check(value)) {    ((sqlrcursor *)sqlrcur)->inputBind(variable, PyString_AsString(value));  } else if (PyInt_Check(value)) {    ((sqlrcursor *)sqlrcur)->inputBind(variable, (int64_t)PyInt_AsLong(value));  } else if (PyFloat_Check(value)) {    ((sqlrcursor *)sqlrcur)->inputBind(variable, (double)PyFloat_AsDouble(value), (uint32_t)precision, (uint32_t)scale);  } else {    success=0;  }  return Py_BuildValue("h", success);}static PyObject *inputBindBlob(PyObject *self, PyObject *args) {  char *variable;  PyObject *value;  uint32_t size;  long sqlrcur;  uint16_t success;  if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED	"lsOI",#else	"lsOi",#endif	&sqlrcur, &variable, &value, &size))    return NULL;  success=1;  if (value==Py_None) {    ((sqlrcursor *)sqlrcur)->inputBindBlob(variable, NULL, size);  } else if (PyString_Check(value)) {    ((sqlrcursor *)sqlrcur)->inputBindBlob(variable, PyString_AsString(value), size);  } else {    success=0;  }  return Py_BuildValue("h", success);}static PyObject *inputBindClob(PyObject *self, PyObject *args) {  char *variable;  PyObject *value;  uint32_t size;  long sqlrcur;  uint16_t success;  if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED	"lsOI",#else	"lsOi",#endif	&sqlrcur, &variable, &value, &size))    return NULL;  success=1;  if (value==Py_None) {    ((sqlrcursor *)sqlrcur)->inputBindClob(variable, NULL, size);  } else if (PyString_Check(value)) {    ((sqlrcursor *)sqlrcur)->inputBindClob(variable, PyString_AsString(value), size);  } else {    success=0;  }  return Py_BuildValue("h", success);}static PyObject *inputBinds(PyObject *self, PyObject *args) {  PyObject *variables;  PyObject *values;  PyObject *precisions;  PyObject *scales;  long sqlrcur;  char *variable;  uint16_t success;  PyObject *value;  if (!PyArg_ParseTuple(args, "lOOOO", &sqlrcur, &variables, &values, &precisions, &scales))    return NULL;  success=1;  if (PyList_Check(variables) && PyList_Check(values)) {    for (int i=0; i<PyList_Size(variables); i++) {      variable=PyString_AsString(PyList_GetItem(variables,i));      value=PyList_GetItem(values,i);      if (value==Py_None) {        ((sqlrcursor *)sqlrcur)->inputBind(variable, (char *)NULL);      } else if (PyString_Check(value)) {        ((sqlrcursor *)sqlrcur)->inputBind(variable, PyString_AsString(value));      } else if (PyInt_Check(value)) {        ((sqlrcursor *)sqlrcur)->inputBind(variable, (int64_t)PyInt_AsLong(value));      } else if (PyFloat_Check(value)) {        ((sqlrcursor *)sqlrcur)->inputBind(variable, (double)PyFloat_AsDouble(value), (unsigned short)PyInt_AsLong(PyList_GetItem(precisions,i)), (unsigned short)PyInt_AsLong(PyList_GetItem(scales,i)));      } else {        success=0;      }    }  }  return Py_BuildValue("h", success);}static PyObject *defineOutputBindString(PyObject *self, PyObject *args) {  char *variable;  uint32_t length;  long sqlrcur;  if (!PyArg_ParseTuple(args,#ifdef SUPPORTS_UNSIGNED	"lsI",#else	"lsi",#endif	&sqlrcur, &variable, &length))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindString(variable, length);  return Py_BuildValue("h", 0);}static PyObject *defineOutputBindInteger(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  if (!PyArg_ParseTuple(args,"ls",&sqlrcur, &variable))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindInteger(variable);  return Py_BuildValue("h", 0);}static PyObject *defineOutputBindDouble(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  if (!PyArg_ParseTuple(args,"ls",&sqlrcur, &variable))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindDouble(variable);  return Py_BuildValue("h", 0);}static PyObject *defineOutputBindBlob(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindBlob(variable);  return Py_BuildValue("h", 0);}static PyObject *defineOutputBindClob(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindClob(variable);  return Py_BuildValue("h", 0);}static PyObject *defineOutputBindCursor(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  ((sqlrcursor *)sqlrcur)->defineOutputBindCursor(variable);  return Py_BuildValue("h", 0);}static PyObject *validateBinds(PyObject *self, PyObject *args) {  long sqlrcur;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  ((sqlrcursor *)sqlrcur)->validateBinds();  return Py_BuildValue("h", 0);}static PyObject *validBind(PyObject *self, PyObject *args) {  long sqlrcur;  bool rc;  char *variable;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  Py_BEGIN_ALLOW_THREADS  rc=((sqlrcursor *)sqlrcur)->validBind(variable);  Py_END_ALLOW_THREADS  return Py_BuildValue("h", (short)rc);}static PyObject *executeQuery(PyObject *self, PyObject *args) {  long sqlrcur;  bool rc;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  Py_BEGIN_ALLOW_THREADS  rc=((sqlrcursor *)sqlrcur)->executeQuery();  Py_END_ALLOW_THREADS  return Py_BuildValue("h", (short)rc);}static PyObject *fetchFromBindCursor(PyObject *self, PyObject *args) {  long sqlrcur;  bool rc;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  Py_BEGIN_ALLOW_THREADS  rc=((sqlrcursor *)sqlrcur)->fetchFromBindCursor();  Py_END_ALLOW_THREADS  return Py_BuildValue("h", (short)rc);}static PyObject *getOutputBindString(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  const char *rc;  uint32_t rl;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindString(variable);  rl=((sqlrcursor *)sqlrcur)->getOutputBindLength(variable);  return Py_BuildValue("s#", rc, rl);}static PyObject *getOutputBindBlob(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  const char *rc;  uint32_t rl;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindBlob(variable);  rl=((sqlrcursor *)sqlrcur)->getOutputBindLength(variable);  return Py_BuildValue("s#", rc, rl);}static PyObject *getOutputBindClob(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  const char *rc;  uint32_t rl;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindClob(variable);  rl=((sqlrcursor *)sqlrcur)->getOutputBindLength(variable);  return Py_BuildValue("s#", rc, rl);}static PyObject *getOutputBindInteger(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  int64_t rc;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindInteger(variable);  // FIXME: lame, python doesn't support building values from int64_t's  return Py_BuildValue("l", (long)rc);}static PyObject *getOutputBindDouble(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  double rc;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindDouble(variable);  return Py_BuildValue("d", rc);}static PyObject *getOutputBindLength(PyObject *self, PyObject *args) {  char *variable;  long sqlrcur;  uint32_t rc;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &variable))    return NULL;  rc=((sqlrcursor *)sqlrcur)->getOutputBindLength(variable);  // FIXME: lame, python doesn't support building values from uint32_t's  return Py_BuildValue("l", (long)rc);}static PyObject *openCachedResultSet(PyObject *self, PyObject *args) {  long sqlrcur;  bool rc;  char *filename;  if (!PyArg_ParseTuple(args, "ls", &sqlrcur, &filename))    return NULL;  Py_BEGIN_ALLOW_THREADS  rc=((sqlrcursor *)sqlrcur)->openCachedResultSet(filename);  Py_END_ALLOW_THREADS  return Py_BuildValue("h", (short)rc);}static PyObject *colCount(PyObject *self, PyObject *args) {  long sqlrcur;  uint32_t rc;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  rc=((sqlrcursor *)sqlrcur)->colCount();  // FIXME: lame, python doesn't support building values from uint32_t's  return Py_BuildValue("l", (long)rc);}static PyObject *rowCount(PyObject *self, PyObject *args) {  long sqlrcur;  uint64_t rc;  if (!PyArg_ParseTuple(args, "l", &sqlrcur))    return NULL;  rc=((sqlrcursor *)sqlrcur)->rowCount();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -