oracle / odpi

ODPI-C: Oracle Database Programming Interface for Drivers and Applications
https://oracle.github.io/odpi/
Other
269 stars 78 forks source link

nim-lang bindings over ODPI-C #115

Closed mikra01 closed 4 years ago

mikra01 commented 5 years ago

I would like to introduce my nim-lang bindings over ODPI-C: https://github.com/mikra01/nimodpi

raw bindings already present - higher level abstraction layer WIP.

anthony-tuininga commented 5 years ago

Thanks for letting us know. When you feel it is "complete" we can add it to the list of third-party drivers in the README.

cjbj commented 4 years ago

@mikra01 how are going with the Nim binding?

mikra01 commented 4 years ago

@cjbj thanks for asking. I bumped the version to 4.0.x (and nim 1.2.6) and it's functional (besides soda and the LOB stuff). The ODPI-C API is directly accessible from Nim(nimterop automatically generates stubs for everything). At the moment I am thinking about easier collection handling. I created various examples (testcode) within db_oracle.nim (see the static "when isMainModule") - an examples section is planned (synchronous to the ODPI-C examples stuff). I saw you already linked my project to your driver's section - thank you.

cjbj commented 4 years ago

@mikra01 excellent.

Did you see ODPI-C 4 now lets the prefetch size be changed? It can be changed to minimize round-trips. E.g see https://cx-oracle.readthedocs.io/en/latest/user_guide/tuning.html#choosing-values-for-arraysize-and-prefetchrows

I might close this announcement issue, which has been open for a while.

mikra01 commented 4 years ago

@cjbj thank you for your hint regarding prefetch size. I was not aware of it actually

cjbj commented 4 years ago

@mikra01 the module initialization change to dpiContext_createWithParams() was also a good one e.g. https://cx-oracle.readthedocs.io/en/latest/api_manual/module.html#cx_Oracle.init_oracle_client and https://cx-oracle.readthedocs.io/en/latest/user_guide/initialization.html#using-cx-oracle-init-oracle-client-to-set-the-oracle-client-directory