• 大小: 110KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Python
  • 标签: DM7  Python  

资源简介

达梦数据库dmPython 安装包,可在python 虚拟环境中用于安装 dmPython 实现Python 适配DM7,可与Python3.6适配

资源截图

代码片段和文件信息

//-----------------------------------------------------------------------------
// Buffer.c
//   Defines buffer structure and routines for populating it. These are used
// to translate Python objects into the buffers needed for Dameng including
// Unicode or buffer objects.
//-----------------------------------------------------------------------------
#include “Buffer.h“

//-----------------------------------------------------------------------------
// pyBuffer_Init()
//   Initialize the buffer with an empty string. Returns 0 as a convenience to
// the caller.
//-----------------------------------------------------------------------------
static 
sdint2
dmBuffer_Init(
    udt_Buffer*     buf     // buffer to initialize
)                    
{
    buf->ptr = NULL;
    buf->size = 0;
    buf->numCharacters = 0;
    buf->obj = NULL;
    return 0;
}


//-----------------------------------------------------------------------------
// cxBuffer_Copy()
//   Copy the contents of the buffer.
//-----------------------------------------------------------------------------
static 
int
dmBuffer_Copy(
    udt_Buffer*     buf                    // buffer to copy into
    udt_Buffer*     copyFromBuf             // buffer to copy from
)            
{
    buf->ptr = copyFromBuf->ptr;
    buf->size = copyFromBuf->size;
    buf->numCharacters = copyFromBuf->numCharacters;
    Py_XINCREF(copyFromBuf->obj);
    buf->obj = copyFromBuf->obj;
    return 0;
}


//-----------------------------------------------------------------------------
// cxBuffer_Fromobject()
//   Populate the string buffer from a unicode object.
//-----------------------------------------------------------------------------
sdint2 
dmBuffer_Fromobject(
    udt_Buffer*     buf                    // buffer to fill
    Pyobject*       obj                      // object (string or Unicode object)
    const char*     encoding               // encoding to use if applicable

{
    if (!obj)
        return dmBuffer_Init(buf);
    if (encoding && PyUnicode_Check(obj)) {
        buf->obj = PyUnicode_AsEncodedString(obj encoding NULL);
        if (!buf->obj)
            return -1;
        buf->ptr = PyBytes_AS_STRING(buf->obj);
        buf->size = PyBytes_GET_SIZE(buf->obj);
        buf->numCharacters = PyUnicode_GET_SIZE(obj);
    } else if (PyBytes_Check(obj)) {
        Py_INCREF(obj);
        buf->obj = obj;
        buf->ptr = PyBytes_AS_STRING(buf->obj);
        buf->size = buf->numCharacters = PyBytes_GET_SIZE(buf->obj);
#if PY_MAJOR_VERSION < 3
    } else if (PyBuffer_Check(obj)) {
        if (Pyobject_AsReadBuffer(obj &buf->ptr &buf->size) < 0)
            return -1;
        Py_INCREF(obj);
        buf->obj = obj;
        buf->numCharacters = buf->size;
#endif
    } else {
        PyErr_SetString(PyExc_TypeError “buffer type error!“);
        return -1;
    }
    return 0;
}



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-22 10:34  dmPython\
     文件        2977  2018-10-18 14:17  dmPython\Buffer.c
     文件         635  2018-10-18 14:17  dmPython\Buffer.h
     文件       58896  2018-10-18 14:17  dmPython\Connection.c
     文件       78098  2018-10-18 14:17  dmPython\Cursor.c
     文件        9991  2018-10-18 14:17  dmPython\dmPython.vcxproj
     文件        3098  2018-10-18 14:17  dmPython\dmPython.vcxproj.filters
     文件         782  2018-10-18 14:17  dmPython\dmPython.vcxproj.user
     文件       12707  2018-10-18 14:17  dmPython\Environment.c
     文件        3480  2018-10-18 14:17  dmPython\Error.c
     文件         861  2018-10-18 14:17  dmPython\Error.h
     文件       13366  2018-10-18 14:17  dmPython\exBfile.c
     文件       17176  2018-10-18 14:17  dmPython\exLob.c
     文件       57107  2018-10-18 14:17  dmPython\exobject.c
     文件       21650  2018-10-18 14:17  dmPython\py_Dameng.c
     文件        8566  2018-10-18 14:17  dmPython\py_Dameng.h
     文件        2417  2018-10-18 14:17  dmPython\README.txt
     文件       15823  2018-10-18 14:17  dmPython\row.c
     文件        1553  2018-10-18 14:17  dmPython\row.h
     文件        9971  2018-10-18 14:17  dmPython\setup.py
     文件        5911  2018-10-18 14:17  dmPython\strct.h
     文件       23313  2018-10-18 14:17  dmPython\tobject.c
     文件       44351  2018-10-18 14:17  dmPython\var.c
     文件       15744  2018-10-18 14:17  dmPython\var_pub.h
     文件       11014  2018-10-18 14:17  dmPython\vBfile.c
     文件        6759  2018-10-18 14:17  dmPython\vCursor.c
     文件       19590  2018-10-18 14:17  dmPython\vDateTime.c
     文件       10478  2018-10-18 14:17  dmPython\vInterval.c
     文件       11293  2018-10-18 14:17  dmPython\vLob.c
     文件       10777  2018-10-18 14:17  dmPython\vlong.c
     文件       32446  2018-10-18 14:17  dmPython\vNumber.c
............此处省略2个文件信息

评论

共有 条评论