(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{Kfls:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return s})),n.d(t,"default",(function(){return l}));var a=n("k1TG"),o=n("8o2o"),c=(n("q1tI"),n("7ljp")),r=n("hhGP"),s=(n("qKvR"),{});void 0!==s&&s&&s===Object(s)&&Object.isExtensible(s)&&!s.hasOwnProperty("__filemeta")&&Object.defineProperty(s,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/hana.mdx"}});var b={_frontmatter:s},i=r.a;function l(e){var t=e.components,n=Object(o.a)(e,["components"]);return Object(c.b)(i,Object(a.a)({},b,n,{components:t,mdxType:"MDXLayout"}),Object(c.b)("h2",{id:"hana"},"Hana"),Object(c.b)("p",null,"The recommended connector library is ",Object(c.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/SAP/sqlalchemy-hana"}),"sqlalchemy-hana"),"."),Object(c.b)("p",null,"The connection string is formatted as follows:"),Object(c.b)("pre",null,Object(c.b)("code",Object(a.a)({parentName:"pre"},{}),"hana://{username}:{password}@{host}:{port}\n")))}void 0!==l&&l&&l===Object(l)&&Object.isExtensible(l)&&!l.hasOwnProperty("__filemeta")&&Object.defineProperty(l,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/hana.mdx"}}),l.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-hana-mdx-25bbb16fe2f5afff16bc.js.map