Metadata-Version: 1.1
Name: pydrda
Version: 0.4.6
Summary: DRDA protocol database driver
Home-page: https://github.com/nakagami/pydrda/
Author: Hajime Nakagami
Author-email: nakagami@gmail.com
License: MIT
Description: =============
        pydrda
        =============
        
        This is a DRDA protocol (https://en.wikipedia.org/wiki/DRDA) database driver.
        
        - Pure python
        - Compliant with PEP-249 (https://www.python.org/dev/peps/pep-0249/)
        
        Requirements
        =============
        
        - Python 3.5+
        
        
        Installation
        =============
        
        ::
        
            $ pip install pydrda
        
        And if you want to connect to Db2, you need
        
        ::
        
            $ pip install pyDes
        
        
        Supported Databases
        ======================
        
        
        Db2
        ------------------------
        
        https://www.ibm.com/analytics/db2
        
        Example
        
        No SSL
        +++++++++++++++++++++++++++++++++++++++++
        
        ::
        
           import drda
        
           conn = drda.connect(host='serverhost', database='dbname', user='user', password='password', port=xxxxx)
           cur = conn.cursor()
           cur.execute('select * from foo where name=?', ['alice'])
           for r in cur.fetchall():
               print(r[0], r[1])
        
        With SSL connection
        +++++++++++++++++++++++++++++++++++++++++
        
        ::
        
           import drda
        
           conn = drda.connect(host='serverhost', database='dbname', use_ssl=True, user='user', password='password', port=xxxxx)
           cur = conn.cursor()
           cur.execute('select * from foo where name=?', ['alice'])
           for r in cur.fetchall():
               print(r[0], r[1])
        
        With SSL and client certificate
        +++++++++++++++++++++++++++++++++++++++++
        
        ::
        
           import drda
        
           conn = drda.connect(host='serverhost', database='dbname', use_ssl=True, ssl_ca_certs='/some/what/path/cert.crt', user='user', password='password', port=xxxxx)
        
        
        
        Apache Derby
        ==============
        
        https://db.apache.org/derby/
        
        You need to start derby as a network server.
        http://db.apache.org/derby/papers/DerbyTut/ns_intro.html#start_ns
        
        Example
        
        ::
        
           import drda
        
           conn = drda.connect(host='serverhost', database='dbname', port=1527)
           cur = conn.cursor()
           cur.execute('select * from foo')
           for r in cur.fetchall():
               print(r[0], r[1])
        
        This driver can't execute with parameters against Apache Derby.
        
        Unit Tests
        ================
        
        I have tested the following steps.
        
        Db2
        ------
        
        Start Db2 server
        ::
        
           $ docker run -itd --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=password -e DBNAME=testdb -v /tmp/db2:/database ibmcom/db2
        
        Execute test
        ::
        
           $ python test_db2.py
        
        Apache Derby
        ---------------
        
        Install Apatch Derby https://db.apache.org/derby/ and start as a server
        ::
        
           $ curl -O https://downloads.apache.org//db/derby/db-derby-10.15.2.0/db-derby-10.15.2.0-bin.tar.gz
           $ tar zxf db-derby-10.15.2.0-bin.tar.gz
           $ echo 'grant {permission java.lang.RuntimePermission "getenv.SOURCE_DATE_EPOCH", "read";};' > ${HOME}/.java.policy
           $ db-derby-10.15.2.0-bin/bin/startNetworkServer &
        
        Execute test
        ::
        
           $ python test_derby.py
        
Keywords: Db2,Apache Derby
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Database
