{"id":1551,"date":"2018-01-19T19:22:58","date_gmt":"2018-01-19T19:22:58","guid":{"rendered":"http:\/\/goofy-trucks.flywheelsites.com\/odbc-socket-server-page-3\/"},"modified":"2018-01-19T19:24:52","modified_gmt":"2018-01-19T19:24:52","slug":"odbc-socket-server-page-3","status":"publish","type":"post","link":"https:\/\/phpbuilder.com\/odbc-socket-server-page-3\/","title":{"rendered":"ODBC Socket Server Page 3"},"content":{"rendered":"<div class=\"phpbuilder-content\">\n<div class=\"phpbuilder-meta\">\n<div class=\"\">By Tim Uckun<\/div>\n<div class=\"\">on December 6, 2000<\/div>\n<\/p><\/div>\n<div id=\"overflow-content\">\n<div class=\"articleHeader\">\nStep 3: Setting up the client:<\/div>\n<div class=\"articlePara\">\nUsing phpinfo() make sure that XML support is compiled. If it&#8217;s not compiled, recompile PHP using<br \/>\nthe &#8211;with-xml configuration options. Although not required for this application,<br \/>\nyou might also want to enable DOM and WDDX functionality. Here is an example.<\/div>\n<div class=\"articlePara\">\n<pre>\n.\/configure \n        --with-apxs=\/usr\/sbin\/apxs \n        --enable-track-vars \n        --with-xml \n        --with-dom \n        --with-wddx\nmake\nmake install\n<\/pre>\n<\/div>\n<div class=\"articlePara\">\nIf you are using an earlier version you will need to make a change to the php.ini file. Either set the<br \/>\n<code class=\"example\"><i>allow_call_time_pass_reference  = On<\/i> or add   <i>~E_COMPILE_WARNING<\/i><br \/>\nto the <i>error_reporting<\/i> setting<\/code> If you don&#8217;t do this php will complain bitterly about a<br \/>\ncall by reference which we have to make.<\/div>\n<div class=\"articlePara\">\nNext, drop the included odbcsocketserverobj.php file into a directory in your include path.<\/div>\n<div class=\"articlePara\">\nThat&#8217;s it!. We are now ready to run some tests.<\/div>\n<div class=\"articlePara\">\nYour communication with the socket server will be handled by the odbcsocketserverobj.php. This object has the<br \/>\nfollowing &#8220;public&#8221; interface.<\/div>\n<div class=\"articlePhpEx\">\n<font face=\"courier\"><code><span style=\"color: #000000\"><\/p>\n<p><span style=\"color: #0000BB\">&lt;?php<\/p>\n<p>$HostName<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Name\u00a0of\u00a0the\u00a0host\u00a0to\u00a0connect\u00a0to<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$Port<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">9628<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Port\u00a0to\u00a0connect\u00a0to\u00a0(set\u00a0to\u00a0the\u00a0default)<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$ConnectionString<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Connection\u00a0string\u00a0to\u00a0use\u00a0I\u00a0will\u00a0show\u00a0an\u00a0example\u00a0later.<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$CaseFolding<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">true<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Determines\u00a0weather\u00a0or\u00a0not\u00a0all\u00a0XML\u00a0tags\u00a0are\u00a0mapped\u00a0to\u00a0uppercase\u00a0pretty\u00a0useful\u00a0sometimes<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$XML<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #DD0000\">\"\"<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0the\u00a0raw\u00a0XML\u00a0as\u00a0returned\u00a0from\u00a0the\u00a0socket\u00a0server<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$Error<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #DD0000\">\"\"<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Please\u00a0don't\u00a0use\u00a0use\u00a0the\u00a0function\u00a0instead<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$Recordset<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">null<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0An\u00a0array\u00a0containing\u00a0the\u00a0recordset\u00a0just\u00a0in\u00a0case\u00a0you\u00a0want\u00a0to\u00a0deal\u00a0with\u00a0it\u00a0directly<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$BOF\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">true<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Indicates\u00a0that\u00a0the\u00a0current\u00a0record\u00a0position\u00a0is\u00a0before\u00a0the\u00a0first\u00a0record\u00a0in\u00a0a\u00a0Recordset\u00a0object.<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$EOF\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">true<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Indicates\u00a0that\u00a0the\u00a0current\u00a0record\u00a0position\u00a0is\u00a0after\u00a0the\u00a0last\u00a0record\u00a0in\u00a0a\u00a0Recordset\u00a0object.<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$RecordCount<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Please\u00a0don't\u00a0use\u00a0use\u00a0the\u00a0function\u00a0instead<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$FieldNames<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Please\u00a0don't\u00a0use\u00a0use\u00a0the\u00a0function\u00a0instead<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$FieldCount<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Please\u00a0don't\u00a0use\u00a0use\u00a0the\u00a0function\u00a0instead<\/p>\n<p><\/span><span style=\"color: #0000BB\">execute<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$SQL<\/span><span style=\"color: #007700\">)<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">errorMsg<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">getField<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$field<\/span><span style=\"color: #007700\">)\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">moveNext<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">nextRow<\/span><span style=\"color: #007700\">()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">movePrev<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">prevRow<\/span><span style=\"color: #007700\">()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">moveFirst<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">firstRow<\/span><span style=\"color: #007700\">()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">moveLast<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">lastRow<\/span><span style=\"color: #007700\">()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">moveRow<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$rowNumber\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">)<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">getNumOfRows<\/span><span style=\"color: #007700\">()<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">getNumOfFields<\/span><span style=\"color: #007700\">()\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">getFieldNames<\/span><span style=\"color: #007700\">()\u00a0<\/p>\n<p><\/span><span style=\"color: #0000BB\">?&gt;<br \/>\n<br \/><\/span><br \/>\n<\/span><br \/>\n<\/code><\/font><\/div>\n<div class=\"articlePara\">\nEven though PHP does not have any concepts of private and public variables, I have made an effort to hide the<br \/>\nusage of variables in the object. Wrapper functions are provided to<br \/>\naccess variables. For example, it is better oop practise to use getNumOfField() method rather then the<br \/>\n$RecordCount variable. Also, note that the movement records are aliased to each other. This was done to<br \/>\nestablish compatibility with phpDB recordset objects.<\/div>\n<div class=\"articlePara\">\nNow that we know what the object does, let&#8217;s put it to the test.<\/div>\n<\/div>\n<p><\/p>\n<div style=\"float: left; padding:15px; color:#17AAF3\">\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"timuckun200012074658.html?page=2\">\u00ab Previous Page<\/a><\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"timuckun20001207.html\">1<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"timuckun200012074658.html?page=2\">2<\/a> <\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"background-color:#B6E5FC; font-size:16px; margin-top:1px; padding:1px 4px 1px 4px; color:#000; font-style:bold; float:left;\">3<\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"timuckun20001207fdb0.html?page=4\">4<\/a> <\/div>\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"timuckun20001207fdb0.html?page=4\">Next Page \u00bb<\/a><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>System Administration: It&#8217;s a dirty job, but someone said I had to do<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1551","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/comments?post=1551"}],"version-history":[{"count":1,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1551\/revisions"}],"predecessor-version":[{"id":3380,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1551\/revisions\/3380"}],"wp:attachment":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/media?parent=1551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/categories?post=1551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/tags?post=1551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}