{"id":1552,"date":"2018-01-19T19:22:58","date_gmt":"2018-01-19T19:22:58","guid":{"rendered":"http:\/\/goofy-trucks.flywheelsites.com\/odbc-socket-server-page-4\/"},"modified":"2018-01-19T19:24:52","modified_gmt":"2018-01-19T19:24:52","slug":"odbc-socket-server-page-4","status":"publish","type":"post","link":"https:\/\/phpbuilder.com\/odbc-socket-server-page-4\/","title":{"rendered":"ODBC Socket Server Page 4"},"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=\"articlePara\">\nHere is how you would use this object:<\/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><\/span><span style=\"color: #FF8000\">\/\/\u00a0Of\u00a0course\u00a0we\u00a0have\u00a0to\u00a0include\u00a0the\u00a0file.<br \/>\n<br \/><\/span><span style=\"color: #007700\">include\u00a0(<\/span><span style=\"color: #DD0000\">\"socketserverobj.php\"<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #FF8000\">\/\/\u00a0First\u00a0we\u00a0create\u00a0the\u00a0class<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$db\u00a0<\/span><span style=\"color: #007700\">=\u00a0new\u00a0<\/span><span style=\"color: #0000BB\">ODBCSocketServer<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #FF8000\">\/\/\u00a0Set\u00a0the\u00a0Hostname,\u00a0port,\u00a0and\u00a0connection\u00a0string<br \/>\n<br \/>\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">HostName\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #DD0000\">\"192.168.0.4\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">Port\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">9628<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #FF8000\">\/\/\u00a0any\u00a0valid\u00a0ADO\u00a0connection\u00a0string\u00a0should\u00a0be\u00a0fine.\u00a0I\u00a0find\u00a0it\u00a0easier\u00a0just\u00a0to\u00a0set\u00a0up\u00a0the\u00a0DSN<br \/>\n<br \/>\/\/\u00a0and\u00a0pass\u00a0in\u00a0the\u00a0user\u00a0info<br \/>\n<br \/>\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">ConnectionString\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #DD0000\">\"DSN=Some_ODBC_DSN;UID=Some_User;PWD=Some_Password;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0<\/p>\n<p><\/span><span style=\"color: #FF8000\">\/\/now\u00a0execute\u00a0the\u00a0SQL<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">$result\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">execute<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"Select\u00a0Field1,\u00a0field2\u00a0from\u00a0SomeTable\"<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>if\u00a0(!<\/span><span style=\"color: #0000BB\">$result<\/span><span style=\"color: #007700\">){<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;p&gt;There\u00a0was\u00a0an\u00a0error\u00a0:\u00a0\"\u00a0<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">errorMsg<\/span><span style=\"color: #007700\">()\u00a0.\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;p&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>}\u00a0else\u00a0{<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0Simple\u00a0iteration\u00a0when\u00a0you\u00a0already\u00a0know\u00a0the\u00a0field\u00a0names<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #007700\">print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;table&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0while\u00a0(!<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">EOF<\/span><span style=\"color: #007700\">){<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0Print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;tr&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0the\u00a0\u00a0case\u00a0folding\u00a0is\u00a0true\u00a0by\u00a0default<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\/\/\u00a0this\u00a0means\u00a0we\u00a0have\u00a0to\u00a0use\u00a0upper\u00a0case\u00a0when\u00a0accessing\u00a0field\u00a0names.<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\/\/\u00a0If\u00a0case\u00a0folding\u00a0was\u00a0false\u00a0then\u00a0we\u00a0would\u00a0have\u00a0to\u00a0use\u00a0\u00a0exact\u00a0case\u00a0like\u00a0this<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\/\/\u00a0$db-&gt;Field1\u00a0,\u00a0\u00a0$db-&gt;field2<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\/\/\u00a0or\u00a0use\u00a0getField\u00a0method\u00a0(see\u00a0next\u00a0example)<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #007700\">print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;td&gt;\"<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">FIELD1<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/td&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;td&gt;\"<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">FIELD2\u00a0<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/td&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0Print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/tr&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">moveNext<\/span><span style=\"color: #007700\">();<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>}<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/table&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #FF8000\">\/\/\u00a0What\u00a0if\u00a0you\u00a0don't\u00a0know\u00a0the\u00a0field\u00a0names?<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/>\/\/\u00a0go\u00a0back\u00a0to\u00a0the\u00a0beginning\u00a0we\u00a0could\u00a0have\u00a0moved\u00a0backwards\u00a0too!<\/p>\n<p><\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">moveFirst<\/span><span style=\"color: #007700\">();<\/p>\n<p>print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;table&gt;\"<\/span><span style=\"color: #007700\">;<\/p>\n<p>while\u00a0(!<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">EOF<\/span><span style=\"color: #007700\">){<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0Print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;tr&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0foreach\u00a0(<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">getFieldNames<\/span><span style=\"color: #007700\">()\u00a0as\u00a0<\/span><span style=\"color: #0000BB\">$fieldname<\/span><span style=\"color: #007700\">)\u00a0{<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;td&gt;\"\u00a0<\/span><span style=\"color: #007700\">.\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">getField<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$fieldname<\/span><span style=\"color: #007700\">)\u00a0.\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/td&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0}\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0foreach<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #007700\">Print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/tr&gt;\"<\/span><span style=\"color: #007700\">;<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$db<\/span><span style=\"color: #007700\">-&gt;<\/span><span style=\"color: #0000BB\">moveNext<\/span><span style=\"color: #007700\">();<br \/>\n<br \/>}\u00a0<\/span><span style=\"color: #FF8000\">\/\/\u00a0while<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #007700\">print\u00a0<\/span><span style=\"color: #DD0000\">\"&lt;\/table&gt;\"<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">?&gt;<br \/>\n<br \/><\/span><br \/>\n<\/span><br \/>\n<\/code><\/font><\/div>\n<div class=\"articlePara\">\nOf course you are not limited to SELECT queries. Action queries (INSERT and UPDATE) obviously don&#8217;t<br \/>\nreturn a recordset, but they do return a true or false depending on<br \/>\nhow the engine handled them.  Once again, if there are any errors present you can check the<br \/>\nError variable. You may also want to do some things with the XML variable.  For example, you may want to<br \/>\nsend the raw XML to a client for B2B syndication.<\/div>\n<div class=\"articlePara\">\nAlthough this object was written to parse the MS ADO XML format, it could easily be rewritten to<br \/>\naccommodate the native XML format of the socket server.  In a future version,<br \/>\nthe socket server will be able to hand out either XML type on demand.<\/div>\n<div class=\"articlePara\">\nI hope this tutorial was useful to you. I want to thank the fine people at Team FXML for the ODBC Socket<br \/>\nserver and of course the fine people at PHP for providing such a useful development environment.<\/div>\n<div class=\"articlePara\">\nThe socketserverobj include file is available below.<\/div>\n<div class=\"articlePara\">\n&#8212; Tim<\/div>\n<p><!-- new page end --><\/div>\n<p><\/p>\n<div style=\"float: left; padding:15px; color:#17AAF3\">\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"timuckun200012079ba9.html?page=3\">\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=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"timuckun200012079ba9.html?page=3\">3<\/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;\">4<\/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-1552","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1552","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=1552"}],"version-history":[{"count":1,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1552\/revisions"}],"predecessor-version":[{"id":3381,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1552\/revisions\/3381"}],"wp:attachment":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/media?parent=1552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/categories?post=1552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/tags?post=1552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}