{"id":12393,"date":"2023-09-22T10:12:22","date_gmt":"2023-09-22T02:12:22","guid":{"rendered":"https:\/\/www.gbase8.cn\/?p=12393"},"modified":"2023-09-22T10:12:23","modified_gmt":"2023-09-22T02:12:23","slug":"gbase-8a%e7%9a%84python%e6%8e%a5%e5%8f%a3%e4%bd%bf%e7%94%a8%e6%a0%b7%e4%be%8b","status":"publish","type":"post","link":"https:\/\/www.gbase8.cn\/en\/12393","title":{"rendered":"\u5357\u5927\u901a\u7528GBase 8a\u7684Python\u63a5\u53e3\u4f7f\u7528\u6837\u4f8b"},"content":{"rendered":"<p>\u672c\u6587\u4ecb\u7ecd\u901a\u8fc7python\u8bbf\u95eeGBase 8a\u7684\u65b9\u6cd5\u3002\u6d89\u53ca\u8fde\u63a5\uff0cDDL,DML,DQL\uff0c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u52a0\u8f7d\u7b49\u5e38\u89c1\u529f\u80fd\u3002<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Directory Navigation<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2b156a06e72\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2b156a06e72\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E7%89%88%E6%9C%AC\" >\u7248\u672c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E5%AE%89%E8%A3%85\" >Install<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E8%A7%A3%E5%8E%8B%E7%BC%A9\" >\u89e3\u538b\u7f29<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E5%AE%89%E8%A3%85BuildInstall\" >\u5b89\u88c5(Build+Install)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93\" >\u8fde\u63a5\u6570\u636e\u5e93<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DDL\" >DDL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DML\" >DML<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DQL_%E5%8D%95%E6%AC%A1\" >DQL \u5355\u6b21<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DQL_%E5%A4%9A%E6%AC%A1\" >DQL \u591a\u6b21<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E4%B8%80%E6%AC%A1%E6%89%A7%E8%A1%8C%E5%A4%9A%E4%B8%AASQL\" >\u4e00\u6b21\u6267\u884c\u591a\u4e2aSQL<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DDLDML\" >DDL\/DML<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#DQL\" >DQL<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E6%89%B9%E9%87%8F%E6%89%A7%E8%A1%8CBatch\" >\u6279\u91cf\u6267\u884cBatch<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B\" >Stored procedure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.gbase8.cn\/en\/12393\/#%E5%8A%A0%E8%BD%BD\" >Loading<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%89%88%E6%9C%AC\"><\/span>\u7248\u672c<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>python\u533a\u52062\u548c3\uff0c \u6240\u4ee5\u9a71\u52a8\u4e5f\u533a\u5206\u3002\u672c\u6587\u4ecb\u7ecd\u4ee5python2\u4e3a\u57fa\u7840\uff0c\u6837\u4f8b\u4e5f\u662fpy2\u7684\u683c\u5f0f<\/p>\n\n\n\n<p>gbase-connector-python2-5.0.1.tar.gz<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%89%E8%A3%85\"><\/span>Install<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%A7%A3%E5%8E%8B%E7%BC%A9\"><\/span>\u89e3\u538b\u7f29<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;gbase@vm246 python]$ ll\r\ntotal 44\r\n-rw-r--r--. 1 root root 43827 Sep 20 08:51 gbase-connector-python2-5.0.1.tar.gz\r\n&#91;gbase@vm246 python]$ tar xvf gbase-connector-python2-5.0.1.tar.gz\r\ngbase-connector-python2-5.0.1\/\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/errmsg\/\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/errmsg\/eng\/\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/errmsg\/eng\/client_errmsg.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/errmsg\/eng\/__init__.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/errmsg\/__init__.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseConnection.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseConstants.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseCursor.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseError.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseErrorCode.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseLogger.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseProtocol.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseSocket.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/GBaseUtils.py\r\ngbase-connector-python2-5.0.1\/GBaseConnector\/__init__.py\r\ngbase-connector-python2-5.0.1\/PKG-INFO\r\ngbase-connector-python2-5.0.1\/README\r\ngbase-connector-python2-5.0.1\/setup.py\r\n&#91;gbase@vm246 python]$<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%89%E8%A3%85BuildInstall\"><\/span>\u5b89\u88c5(Build+Install)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 gbase-connector-python2-5.0.1]$ python setup.py build\r\nrunning build\r\nrunning build_py\r\ncreating build\r\ncreating build\/lib\r\ncreating build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseConnection.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseConstants.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseCursor.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseError.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseErrorCode.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseLogger.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseProtocol.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseSocket.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/GBaseUtils.py -> build\/lib\/GBaseConnector\r\ncopying GBaseConnector\/__init__.py -> build\/lib\/GBaseConnector\r\ncreating build\/lib\/GBaseConnector\/errmsg\r\ncopying GBaseConnector\/errmsg\/__init__.py -> build\/lib\/GBaseConnector\/errmsg\r\ncreating build\/lib\/GBaseConnector\/errmsg\/eng\r\ncopying GBaseConnector\/errmsg\/eng\/__init__.py -> build\/lib\/GBaseConnector\/errmsg\/eng\r\ncopying GBaseConnector\/errmsg\/eng\/client_errmsg.py -> build\/lib\/GBaseConnector\/errmsg\/eng\r\n\r\n&#91;root@vm246 gbase-connector-python2-5.0.1]# python setup.py  install\r\nrunning install\r\nrunning build\r\nrunning build_py\r\nrunning install_lib\r\ncreating \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseConnection.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseConstants.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseCursor.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseError.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseErrorCode.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseLogger.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseProtocol.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseSocket.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/GBaseUtils.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncopying build\/lib\/GBaseConnector\/__init__.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\r\ncreating \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\r\ncopying build\/lib\/GBaseConnector\/errmsg\/__init__.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\r\ncreating \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/eng\r\ncopying build\/lib\/GBaseConnector\/errmsg\/eng\/__init__.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/eng\r\ncopying build\/lib\/GBaseConnector\/errmsg\/eng\/client_errmsg.py -> \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/eng\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseConnection.py to GBaseConnection.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseConstants.py to GBaseConstants.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseCursor.py to GBaseCursor.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseError.py to GBaseError.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseErrorCode.py to GBaseErrorCode.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseLogger.py to GBaseLogger.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseProtocol.py to GBaseProtocol.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseSocket.py to GBaseSocket.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/GBaseUtils.py to GBaseUtils.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/__init__.py to __init__.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/__init__.py to __init__.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/eng\/__init__.py to __init__.pyc\r\nbyte-compiling \/usr\/lib\/python2.7\/site-packages\/GBaseConnector\/errmsg\/eng\/client_errmsg.py to client_errmsg.pyc\r\nrunning install_egg_info\r\nWriting \/usr\/lib\/python2.7\/site-packages\/gbase_connector_python-5.0.1-py2.7.egg-info\r\n&#91;root@vm246 gbase-connector-python2-5.0.1]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93\"><\/span>\u8fde\u63a5\u6570\u636e\u5e93<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testCon.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'PASSWORD_OF_ROOT',\r\n        'connection_timeout':3600,\r\n        'charset':'utf8'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        print conn\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]#\n&#91;root@vm246 python]# python testCon.py\r\n&lt;GBaseConnector.GBaseConnection.GBaseConnection object at 0x7ff39b92d990><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DDL\"><\/span>DDL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;gbase@vm246 python]$ cat testDDL.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        print cur.execute(\"CREATE table if not exists testPython(id int)\")\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;gbase@vm246 python]$\r\n\r\n\r\n\r\ngbase> use testdb;\r\nQuery OK, 0 rows affected (Elapsed: 00:00:00.00)\r\n\r\ngbase> desc testPython;\r\n+-------+---------+------+-----+---------+-------+\r\n| Field | Type    | Null | Key | Default | Extra |\r\n+-------+---------+------+-----+---------+-------+\r\n| id    | int(11) | YES  |     | NULL    |       |\r\n+-------+---------+------+-----+---------+-------+\r\n1 row in set (Elapsed: 00:00:00.01)\r\n\r\ngbase><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DML\"><\/span>DML<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\r\n&#91;gbase@vm246 python]$ cat testDML.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        print cur.execute(\"CREATE table if not exists testPython(id int)\")\r\n        print cur.execute(\"insert into testPython values(12345678)\")\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;gbase@vm246 python]$ python testDML.py\r\nNone\r\nNone        \r\n&#91;gbase@vm246 python]$ gccli -pAdmin2O11O531 testdb\r\n\r\nGBase client 9.5.3.29.23fba856. Copyright (c) 2004-2023, GBase.  All Rights Reserved.\r\n\r\ngbase> select * from testPython;\r\n+----------+\r\n| id       |\r\n+----------+\r\n| 12345678 |\r\n+----------+\r\n1 row in set (Elapsed: 00:00:00.01)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DQL_%E5%8D%95%E6%AC%A1\"><\/span>DQL \u5355\u6b21<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testDQL.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython\")\r\n        cur.execute(\"CREATE table if not exists testPython(id int)\")\r\n        cur.execute(\"insert into testPython values(12345678)\")\r\n        cur.execute(\"select * from testPython\")\r\n        row = cur.fetchone()\r\n        print row\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testDQL.py\r\n(12345678,)\r\n&#91;root@vm246 python]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DQL_%E5%A4%9A%E6%AC%A1\"><\/span>DQL \u591a\u6b21<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u524d\u4e00\u4e2aselect\u5fc5\u987b\u5168\u90e8\u8bfb\u53d6\u5b8c\u6bd5\uff0c\u5426\u5219\u540c\u4e00\u4e2a\u8fde\u63a5\u4f1a\u62a5\u9519 Unread result found.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testDQL.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython\")\r\n        cur.execute(\"CREATE table if not exists testPython(id int)\")\r\n        cur.execute(\"insert into testPython values(12345678)\")\r\n        cur.execute(\"select * from testPython\")\r\n        row = cur.fetchall()\r\n        print row\r\n\r\n        cur.execute(\"insert into testPython values(22222),(33333)\")\r\n        cur.execute(\"select * from testPython\")\r\n        row2 = cur.fetchmany(2)\r\n        print row2\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testDQL.py\r\n&#91;(12345678,)]\r\n&#91;(12345678,), (22222,)]\r\n&#91;root@vm246 python]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%80%E6%AC%A1%E6%89%A7%E8%A1%8C%E5%A4%9A%E4%B8%AASQL\"><\/span>\u4e00\u6b21\u6267\u884c\u591a\u4e2aSQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u4f7f\u7528multi_stmt=True \u53c2\u6570\uff0c\u5426\u5219\u4f1a\u62a5\u9519 Use query_iter for statements with multiple queries.<br>DDL,DML\u8fd4\u56de\u7684\u662fNone<br>DQL \u8fd4\u56de\u7ed3\u679c\u96c6<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DDLDML\"><\/span>DDL\/DML<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testMultiSQL.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython;CREATE table if not exists testPython(id int);insert into testPython values(12345678)\", multi_stmt=True)\r\n        cur.execute(\"select * from testPython\")\r\n        row = cur.fetchall()\r\n        print row\r\n\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testMultiSQL.py\r\n&#91;(12345678,), (22222,), (33333,)]\r\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DQL\"><\/span>DQL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\r\n\r\n&#91;root@vm246 python]# cat testMultiDQLSQL.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython\")\r\n        cur.execute(\"CREATE table if not exists testPython(id int)\")\r\n        cur.execute(\"insert into testPython values(12345678)\")\r\n        rss = cur.execute(\"select * from testPython;select count(*) from testPython\", multi_stmt=True)\r\n        for rs in rss:\r\n            print rs.fetchall()\r\n\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testMultiDQLSQL.py\r\n&#91;(12345678,)]\r\n&#91;(1,)]\r\n&#91;root@vm246 python]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%89%B9%E9%87%8F%E6%89%A7%E8%A1%8CBatch\"><\/span>\u6279\u91cf\u6267\u884cBatch<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testPrepared.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython2\")\r\n        cur.execute(\"CREATE table if not exists testPython2(id int,name varchar(100))\")\r\n        opfmt = \"INSERT INTO testPython2(id, name) VALUES(%s, %s)\"\r\n        rows = &#91;]\r\n        for i in xrange(0, 100):\r\n           rows.append((i, \"row\" + str(i)))\r\n        cur.executemany(opfmt, rows)\r\n        cur.execute(\"select * from testPython2\")\r\n        row = cur.fetchall()\r\n        print row\r\n\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testPrepared.py\r\n&#91;(0, u'row0'), (1, u'row1'), (2, u'row2'), (3, u'row3'), (4, u'row4'), (5, u'row5'), (6, u'row6'), (7, u'row7'), (8, u'row8'), (9, u'row9'), (10, u'row10'), (11, u'row11'), (12, u'row12'), (13, u'row13'), (14, u'row14'), (15, u'row15'), (16, u'row16'), (17, u'row17'), (18, u'row18'), (19, u'row19'), (20, u'row20'), (21, u'row21'), (22, u'row22'), (23, u'row23'), (24, u'row24'), (25, u'row25'), (26, u'row26'), (27, u'row27'), (28, u'row28'), (29, u'row29'), (30, u'row30'), (31, u'row31'), (32, u'row32'), (33, u'row33'), (34, u'row34'), (35, u'row35'), (36, u'row36'), (37, u'row37'), (38, u'row38'), (39, u'row39'), (40, u'row40'), (41, u'row41'), (42, u'row42'), (43, u'row43'), (44, u'row44'), (45, u'row45'), (46, u'row46'), (47, u'row47'), (48, u'row48'), (49, u'row49'), (50, u'row50'), (51, u'row51'), (52, u'row52'), (53, u'row53'), (54, u'row54'), (55, u'row55'), (56, u'row56'), (57, u'row57'), (58, u'row58'), (59, u'row59'), (60, u'row60'), (61, u'row61'), (62, u'row62'), (63, u'row63'), (64, u'row64'), (65, u'row65'), (66, u'row66'), (67, u'row67'), (68, u'row68'), (69, u'row69'), (70, u'row70'), (71, u'row71'), (72, u'row72'), (73, u'row73'), (74, u'row74'), (75, u'row75'), (76, u'row76'), (77, u'row77'), (78, u'row78'), (79, u'row79'), (80, u'row80'), (81, u'row81'), (82, u'row82'), (83, u'row83'), (84, u'row84'), (85, u'row85'), (86, u'row86'), (87, u'row87'), (88, u'row88'), (89, u'row89'), (90, u'row90'), (91, u'row91'), (92, u'row92'), (93, u'row93'), (94, u'row94'), (95, u'row95'), (96, u'row96'), (97, u'row97'), (98, u'row98'), (99, u'row99')]\r\n&#91;root@vm246 python]#<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B\"><\/span>Stored procedure<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testProcedure.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop procedure if exists testPython_proc\")\r\n        cur.execute(\"create procedure testPython_proc() \\\r\n            begin \\\r\n               select 1+2;\\\r\n               select now();\\\r\n            end\")\r\n        rss = cur.callproc(\"testPython_proc\")\r\n        for rs in rss:\r\n            print rs.fetchall()\r\n\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testProcedure.py\r\n&#91;(3,)]\r\n&#91;(datetime.datetime(2023, 9, 22, 9, 30, 31),)]\r\n&#91;root@vm246 python]#\r\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8A%A0%E8%BD%BD\"><\/span>Loading<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u52a0\u8f7d\u6210\u529f\u884c\u6570\u53ef\u4ee5\u76f4\u63a5\u7528rowcount\u5c5e\u6027\u3002\u800c\u5ffd\u7565\u884c\u6570\u6211\u6d4b\u8bd5\u7684\u7248\u672c\u5c1a\u4e0d\u652f\u6301\uff0c\u6240\u4ee5\u7528info\u505a\u4e86\u81ea\u884c\u89e3\u6790\u6765\u5b9e\u73b0\u7684\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&#91;root@vm246 python]# cat testLoad.py\r\nfrom GBaseConnector import connect,GBaseError\r\nif __name__ == '__main__':\r\n    config = {'host':'10.10.10.10',\r\n        'port':5258,\r\n        'database':'testdb',\r\n        'user':'root',\r\n        'passwd':'Admin2O11O531'}\r\n    try:\r\n        conn = connect()\r\n        conn.connect(**config)\r\n        cur = conn.cursor()\r\n        cur.execute(\"drop table if exists testPython2\")\r\n        cur.execute(\"CREATE table if not exists testPython2(id int,name varchar(100))\")\r\n        cur.execute(\"load data infile 'file:\/\/10.10.10.10\/home\/gbase\/py.txt' into table testpython2 fields terminated by ','\")\r\n        print cur.info\r\n        print(\"Loaded\",cur.rowcount)\r\n        infors=cur.info.split()\r\n        print(\"TaskId\",infors&#91;1])\r\n        print(\"Skipped\",infors&#91;7])\r\n    except GBaseError.DatabaseError, err:\r\n        print err\r\n    finally:\r\n        conn.close()\r\n&#91;root@vm246 python]# python testLoad.py\r\nTask 3237 finished, Loaded 1 records, Skipped 0 records\r\n('Loaded', 1)\r\n('TaskId', '3237')\r\n('Skipped', '0')\r\n&#91;root@vm246 python]#<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4ecb\u7ecd\u901a\u8fc7python\u8bbf\u95eeGBase 8a\u7684\u65b9\u6cd5\u3002\u6d89\u53ca\u8fde\u63a5\uff0cDDL,DML,DQL\uff0c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u52a0\u8f7d\u7b49\u5e38\u89c1\u529f\u80fd\u3002<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-12393","post","type-post","status-publish","format-standard","hentry","category-gbase8a"],"_links":{"self":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/comments?post=12393"}],"version-history":[{"count":6,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12393\/revisions"}],"predecessor-version":[{"id":12399,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/posts\/12393\/revisions\/12399"}],"wp:attachment":[{"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/media?parent=12393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/categories?post=12393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gbase8.cn\/en\/wp-json\/wp\/v2\/tags?post=12393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}