{"id":589,"date":"2015-12-16T14:12:57","date_gmt":"2015-12-16T13:12:57","guid":{"rendered":"http:\/\/dokumentacja.edokumenty.eu\/?page_id=589"},"modified":"2017-07-10T12:20:21","modified_gmt":"2017-07-10T10:20:21","slug":"polaczenia-z-bazami","status":"publish","type":"page","link":"http:\/\/developer.edokumenty.eu\/index.php\/dokumentacja-online-systemu-edokumenty\/dostep-i-przetwarzanie-danych\/polaczenia-z-bazami\/","title":{"rendered":"Po\u0142\u0105czenia z bazami"},"content":{"rendered":"<p>Za pomoc\u0105 wbudowanych bibliotek mo\u017cna \u0142\u0105czy\u0107 si\u0119 z r\u00f3\u017cnymi innymi bazami danych.<\/p>\n<p>Po\u0142\u0105czenia mo\u017cna wykorzysta\u0107 zar\u00f3wno jako \u017ar\u00f3d\u0142o danych w raportach, jak r\u00f3wnie\u017c w skryptach, komendach i dialogach.<\/p>\n<p>Poni\u017cej przyk\u0142ad zastosowania istniej\u0105cego \u017ar\u00f3d\u0142a w skrypcie i komendzie do wsp\u00f3\u0142pracy z baz\u0105 ORACLE. Wykorzystujemy w nim pobrany metod\u0105 getConnection natywny uchwyt (Resource) do\u00a0sterownika php_oci. Przydatne jest to przy\u00a0wywo\u0142ywaniu procedur sk\u0142adowych plpgsql.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\n$dataSourceName\u00a0=\u00a0'EGERIA';\r\nrequire_once('.\/classes\/DataSources\/DataSourceManager.inc');\r\n$dm\u00a0=\u00a0DataSourceManager::connect($dataSourceName);\r\n$connection = $dm-&gt;getConnection();\r\n\/\/\u00a0wyo\u0142anie\u00a0ORACLE\r\n$paramsStr\u00a0=\u00a0'';\r\n$paramsStr\u00a0=\u00a0':p'.implode(',\u00a0:p',\u00a0array_keys($data));\r\n$stid\u00a0=\u00a0oci_parse($connection,\u00a0'begin\u00a0:result\u00a0:=\u00a0egadm1.wdrp_zre.urlopy('.$paramsStr.');\u00a0end;');\r\nforeach\u00a0($data\u00a0as\u00a0$k\u00a0=&gt;\u00a0$v)\u00a0{\r\n$bind\u00a0=\u00a0oci_bind_by_name($stid,\u00a0':p'.$k,\u00a0$data[$k]);\r\n}\r\n\r\n$externalDocumentID\u00a0=\u00a0NULL;\r\n$bind\u00a0=\u00a0oci_bind_by_name($stid,\u00a0':result',\u00a0$externalDocumentID,\u00a040);\r\noci_execute($stid);\r\nif\u00a0(!is_numeric($externalDocumentID))\u00a0{\r\n    $this-&gt;errorMessage = 'Wyst\u0105pi\u0142 b\u0142\u0105d podczas eksportu'; \/\/ przypu\u015b\u0107my, \u017ce mamy $this-&gt;errorMessage\r\n    return FALSE;\r\n}\r\nreturn\u00a0TRUE;\n<\/code><\/pre><\/div>\n<p>Poni\u017cej inny przyk\u0142ad wywo\u0142ania zapytania typu SELECT. W tym wypadku wystarczy wykorzystanie obiektu DataSourceManager dost\u0119pnym w bibliotekach eDokumenty.<\/p>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\nrequire_once('.\/classes\/DataSources\/DataSourceManager.inc');\r\nrequire_once(MOD_PATH.'CRegisters\/beans\/CRegisterEntry.inc');\r\n\r\n$cohenernceTableName\u00a0=\u00a0'etapy_zlecen';\r\n$dataSourceName\u00a0=\u00a0'EGERIA';\r\n$query\u00a0=\u00a0'SELECT\u00a0*\u00a0FROM\u00a0egadm1.bs_etapy_zlecen';\r\n$out\u00a0=\u00a0DataSourceManager::execute($dataSourceName, $query,\u00a0FALSE,\u00a0FETCH_ASSOC);\r\n\r\nforeach\u00a0($out\u00a0as\u00a0$row)\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0var_dump($row);\r\n\u00a0\u00a0\u00a0\u00a0\/\/\u00a0dodaje\u00a0wpis\u00a0do\u00a0rejestru\r\n\u00a0\u00a0\u00a0\u00a0$cregid\u00a0=\u00a028;\r\n\u00a0\u00a0\u00a0\u00a0$bean\u00a0=\u00a0new\u00a0CRegisterEntry($id____,\u00a0$cregid);\r\n\r\n\u00a0\u00a0\u00a0\u00a0$bean-&gt;set('et_id',\u00a0$row['ET_ID']);\r\n\u00a0\u00a0\u00a0\u00a0$bean-&gt;set('et_dok_id',\u00a0$row['ET_DOK_ID']);\r\n\u00a0\u00a0\u00a0\u00a0$bean-&gt;set('et_nr',\u00a0$row['ET_NR']);\r\n\u00a0\u00a0\u00a0\u00a0$bean-&gt;set('et_nazwa',\u00a0$row['ET_NAZWA']);\r\n\u00a0\u00a0\u00a0\u00a0$bean-&gt;save();\r\n}\n<\/code><\/pre><\/div>\n<div class=\"code-highlight code-highlight-with-label\" data-label=\"PHP\"><span class=\"js-copy-to-clipboard copy-code\">copy<\/span>\n\t<pre><code class=\"language-php js-code\">\n&lt;?php\r\nini_set('display_erros','on');\r\nchdir(dirname(__FILE__).'\/..\/');\r\n\r\npreg_match ('\/(.*)engine\/',$_SERVER['SCRIPT_NAME'],$matches);\r\ndefine('SCRIPT_PATH', isset($matches[1])?$matches[1]:'');\r\n\r\ndefine('ASYNC_SERVICE', FALSE);\r\ndefine('LIB_PATH', '..\/..\/framework\/lib\/');\r\ndefine('MOD_PATH', '.\/modules\/');\r\ndefine('MODEL_PATH', '.\/model\/');\r\n\r\n\r\nrequire_once(LIB_PATH.'util\/Translator\/Translator.inc');\r\nrequire_once('.\/config.inc');\r\nrequire_once('..\/..\/framework\/globalVar.inc');\r\nrequire_once('.\/localVar.inc');\r\nrequire_once(FUNC_PATH.'GetUsrAcc.inc');\r\nrequire_once(LIB_PATH.'system.inc');\r\nrequire_once(LIB_PATH.'db\/PgManager.inc');\r\nrequire_once(LIB_PATH.'util\/Debug.inc');\r\nrequire_once(LIB_PATH.'util\/Strings.inc');\r\nrequire_once(LIB_PATH.'db\/Bean.inc');\r\nrequire_once(LIB_PATH.'system\/VarPathService.inc');\r\nrequire_once('.\/classes\/DataSources\/DataSourceManager.inc');\r\nrequire_once('.\/classes\/FeatureBox\/FeaturesHelper.inc');\r\n\r\nSysContext::$ent_id=2;\r\n$dataSourceName\u00a0=\u00a0'EXTERNAL\u00a0SYSTEM';\r\n$query\u00a0=\u00a0\"\r\nSELECT\u00a0\u00a0\r\n      Id,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Symbol,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Name,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DefaultCategoryId\r\n\u00a0\u00a0FROM\u00a0\r\n      dbo.bs_costs_view\";\r\n\r\n$msSQLConn\u00a0=\u00a0DataSourceManager::connect($dataSourceName);\r\n$out\u00a0=\u00a0$msSQLConn-&gt;execute($query,\u00a0FALSE,\u00a0FETCH_ASSOC);\r\n\r\nif\u00a0(isset($out)\u00a0&amp;&amp;\u00a0is_array($out)\u00a0&amp;&amp;\u00a0count($out)\u00a0&gt;\u00a00)\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0foreach\u00a0($out\u00a0as\u00a0$row)\u00a0{\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u00a0var_dump($row);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$ext_id\u00a0=\u00a0$row['Id'];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$symbol\u00a0=\u00a0$row['Symbol'];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$name__\u00a0=\u00a0$row['Name'];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$cat_id\u00a0=\u00a0$row['DefaultCategoryId'];\r\n...\r\n\u00a0\u00a0}\r\n}\r\n\r\n?&gt;\n<\/code><\/pre><\/div>\n<p>Opis klasy\u00a0DataSourceManager<\/p>\n<p><a href=\"http:\/\/developer.edokumenty.eu\/wp-content\/uploads\/2015\/12\/DataSourceManager.html\">DataSourceManager<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Za pomoc\u0105 wbudowanych bibliotek mo\u017cna \u0142\u0105czy\u0107 si\u0119 z r\u00f3\u017cnymi innymi bazami danych. Po\u0142\u0105czenia mo\u017cna wykorzysta\u0107 zar\u00f3wno jako \u017ar\u00f3d\u0142o danych w raportach, jak r\u00f3wnie\u017c w skryptach, komendach i dialogach. Poni\u017cej przyk\u0142ad zastosowania istniej\u0105cego \u017ar\u00f3d\u0142a w skrypcie i komendzie do wsp\u00f3\u0142pracy z baz\u0105 ORACLE. Wykorzystujemy w nim pobrany metod\u0105 getConnection natywny uchwyt (Resource) do\u00a0sterownika php_oci. Przydatne jest [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":502,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"tags":[78],"_links":{"self":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/589"}],"collection":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/comments?post=589"}],"version-history":[{"count":11,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/589\/revisions"}],"predecessor-version":[{"id":3454,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/589\/revisions\/3454"}],"up":[{"embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/pages\/502"}],"wp:attachment":[{"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/media?parent=589"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/developer.edokumenty.eu\/index.php\/wp-json\/wp\/v2\/tags?post=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}