最近一直在苦恼,怎样让C++,Python,PLSql有够很好的关联起来,看了两天的书,似乎也没多大进展,对于从未接触过Python的我来说,确实不好理解,现在将学到的内容记录下来,供日后参考。
在python中定义时,需要提供一个返回值
一,C++中操作python:
1.当返回值为数字或字符时,会用到Py_BuildValue()函数
PyObject *Py_BuildValue(Const char *format) #format为格式化字符串
CPyObjADPtr p = Py_BuildValue("u",CStringW("**"));
CPyObjADPtr r = CallIntoPy1("PPStateEva","GetGridHead",p);
PyUnicode_AS_UNICODE(r.get());
2.列表
创建表:PyList_New();
向列表中添加项:PyList_SetItem();
获取列表中的某项:PyList_GetItem();
3.元组
新建Python元组:PyTuple_New() PyObject * PyTuple_New(Py_ssize_t len);
向元组中添加项:PyTuple_SetItem()
获取元组中的项:PyTuple_GetItem()
4.字典的操作
创建一个新的字典:PyDict_New()函数
函数原型:PyObject* PyDict_New()
向字典中添加项:PyDict_SetItem(), PyDict_SetItemString()
函数的原型:int PyDict_SetItem ( PyObject *p,PyObject *key,PyObject *val )
int PyDict_SetItemString ( PyObject *p,const Char *key,PyObject *val )
获得字典中的项: PyDict_GetItem(), PyDict_GetItemString() #它们都获取字典中某项的值
删除字典中的某一项:PyDict_DelItem(), PyDict_DelItemString()
二,python中连接数据库
1.连接接口
connect(数据源名称,用户名,密码,主机名,数据库名)
2.连接对象
当处理更新,插入,删除等提交操作时会用.commit()
3.游标cursor
cours.rowcount:返回值的行数
cours.close()关闭游标
cours.execute()执行一个数据库操作
cours.fetchall()返回所有查询结果