{"id":57,"date":"2017-03-23T15:15:10","date_gmt":"2017-03-23T15:15:10","guid":{"rendered":"http:\/\/www.polysyncronism.com\/wordpress\/?p=57"},"modified":"2017-03-24T15:03:27","modified_gmt":"2017-03-24T15:03:27","slug":"vbscript-javascript-for-json-from-sql-server","status":"publish","type":"post","link":"http:\/\/www.polysyncronism.com\/wordpress\/2017\/03\/23\/vbscript-javascript-for-json-from-sql-server\/","title":{"rendered":"VBScript, Javascript for JSON from SQL Server"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-58\" src=\"http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript-300x179.png\" alt=\"\" width=\"598\" height=\"357\" srcset=\"http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript-300x179.png 300w, http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript-768x457.png 768w, http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript.png 781w\" sizes=\"auto, (max-width: 598px) 85vw, 598px\" \/><\/p>\n<pre class=\"toolbar:1 lang:vb decode:true \" title=\"HTA Code\">&lt;meta http-equiv=\"x-ua-compatible\" content=\"ie=9\" \/&gt; \r\n&lt;html&gt;\r\n      &lt;head&gt;\r\n            &lt;title&gt;JSON from SQL Server&lt;\/title&gt;\r\n            &lt;hta:application\r\n                  SINGLEINSTANCE=\"yes\"\r\n                  MAXIMIZEBUTTON=\"yes\"\r\n            &gt;\r\n\r\n            &lt;script language=\"javascript\"&gt;\r\n                  try {\r\n                    self.resizeTo(800, 400);\r\n                   } catch(e) {\r\n                   }\r\n            &lt;\/script&gt;\r\n            \r\n      \r\n&lt;script language=\"VBscript\"&gt;\r\n\t\r\nDim strSQL\r\n    \r\nSub btnShowJSON()\r\n  ProcessJSON(fnQueryData)\r\nEnd Sub\r\n\r\nfunction RStoJSON(rs)\r\n    dim sFld,fld,sFlds\r\n    dim sRec,sRecs\r\n    dim sRecordSet\r\n    dim lRecCnt\r\n\r\n    sRecordSet = \"\"\r\n    sRecs = \"\"\r\n    lRecCnt = 0\r\n    if rs.EOF or rs.BOF then\r\n        RStoJSON = \"null\"\r\n    else\r\n        do while not rs.EOF and not rs.BOF\r\n            lRecCnt = lRecCnt + 1\r\n            sFlds = \"\"\r\n            for each fld in rs.Fields\r\n                sFld = \"\"\"\" &amp; fld.Name &amp; \"\"\":\"\"\" &amp; fld.Value&amp;\"\" &amp; \"\"\"\"\r\n                sFlds = sFlds &amp; GetDelim(sFlds &lt;&gt; \"\",\"fld\") &amp; sFld\r\n            next \r\n            sRec = \"{\" &amp; sFlds &amp; \"}\"\r\n            sRecs = sRecs &amp; GetDelim(sRecs &lt;&gt; \"\", \"rec\") &amp; sRec\r\n            rs.MoveNext\r\n        loop\r\n        sRecordSet = \"( {\"\"Records\"\": [\" &amp; vbCrLf &amp; sRecs &amp; vbCrLf &amp; \"], \" \r\n        sRecordSet = sRecordSet &amp; \"\"\"RecordCount\"\":\"\"\" &amp; lRecCnt &amp; \"\"\" } )\"\r\n        RStoJSON = sRecordSet\r\n    end if\r\nend Function\r\n\r\n' Return comma depending on condition and type fld or rec '\r\nfunction GetDelim(bResult,sType)\r\n    if bResult Then\r\n        If sType = \"fld\" then\r\n        GetDelim = \",\"\r\n        End If\r\n        If sType = \"rec\" Then\r\n        GetDelim = \",\" &amp; vbCrLf\r\n        End if\r\n    else\r\n        GetDelim = \"\"\r\n    end if\r\nend function\r\n\r\nFunction fnQueryData()\r\n\r\nDim strJSON\r\n\r\nDim oCn,oRs1,strSQL\r\n\r\nSet oCn = CreateObject( \"ADODB.Connection\" )\r\nSet oRs1 = CreateObject( \"ADODB.Recordset\"  ) \r\n\r\noCn.ConnectionString = \"PROVIDER=SQLOLEDB\" &amp; \";Server=JEFFLD-HP\\JD01SQL;Database=AdventureWorks2012;Trusted_Connection=Yes;\"\r\n\r\noCn.open\r\n\r\nstrSQL = \"select top 5 firstname,lastname,emailaddress from person.person P join person.emailaddress E on E.BusinessEntityID=P.BusinessEntityID\"\r\n\r\noRs1.Open strSQL, oCn\r\n\r\n\r\nstrJSON = RStoJSON(oRS1)\r\n\r\n' Clean up database resources\r\noRs1.Close\r\noCn.Close    \r\n    \r\nfnQueryData = strJSON    \r\n    \r\nEnd Function\r\n\r\n\r\n\r\n\r\n&lt;\/script&gt;\r\n\r\n&lt;script language=\"javascript\" type=\"text\/javascript\"&gt;\r\n\t\t\r\n\t\t\tfunction ProcessJSON(sJSON)\r\n\t\t\t{\r\n\t\t\tvar rs = eval(sJSON);\r\n\t\t\tif ( rs ) { \/\/ has a non-null value\r\n\t\t\t  \/\/ get the record count\r\n\t\t\t  var str = rs.RecordCount + \" Users:&lt;br\/&gt;\";\r\n\t\t\t  \/\/ get the data from the records\r\n\t\t\t  str = \"&lt;table border=1&gt;\"\r\n\t\t\t  for ( var recno = 0 ; recno &lt; rs.RecordCount ; recno++ ) {\r\n\t\t\t    str += \"&lt;tr&gt;\";\r\n\t\t\t    str += \"&lt;td&gt;\"+rs.Records[recno].firstname + \"&lt;\/td&gt;\";\r\n\t\t\t    str += \"&lt;td&gt;\"+rs.Records[recno].lastname + \"&lt;\/td&gt;\";\r\n\t\t\t    str += \"&lt;td&gt;\"+rs.Records[recno].emailaddress + \"&lt;\/td&gt;\";\r\n\t\t\t    str += \"&lt;\/tr&gt;\";\r\n\t\t\t  }\r\n\t\t\t  str+= \"&lt;\/table&gt;\"\r\n\t\t\t  document.getElementById('userlist').innerHTML = str;\r\n\t\t\t  document.getElementById('json').innerHTML = sJSON;\r\n\t\t\t} else { \/\/ rs = null\r\n\t\t\t    str = \"No users found\"\r\n\t\t\t}\r\n\t\t\t}\r\n\r\n\t\r\n&lt;\/script&gt;\r\n             \r\n\r\n&lt;\/head&gt;          \r\n&lt;body&gt;\r\n    &lt;input type=\"button\" name=\"btnShowJSON\" id=\"btnShowJSON\" value=\"Show JSON\" onclick=\"btnShowJSON()\"&gt;&lt;\/input&gt;\r\n    &lt;p&gt;&lt;\/p&gt;\r\n    &lt;div id=\"userlist\"&gt;&lt;\/div&gt;\r\n    &lt;div id=\"json\"&gt;&lt;\/div&gt;\r\n&lt;\/body&gt;\r\n\r\n&lt;\/html&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-64\" src=\"http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript02-300x150.png\" alt=\"\" width=\"580\" height=\"290\" srcset=\"http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript02-300x150.png 300w, http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript02-768x384.png 768w, http:\/\/www.polysyncronism.com\/wordpress\/wp-content\/uploads\/2017\/03\/jsonSQLvbscriptJavascript02.png 800w\" sizes=\"auto, (max-width: 580px) 85vw, 580px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;meta http-equiv=&#8221;x-ua-compatible&#8221; content=&#8221;ie=9&#8243; \/&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;JSON from SQL Server&lt;\/title&gt; &lt;hta:application SINGLEINSTANCE=&#8221;yes&#8221; MAXIMIZEBUTTON=&#8221;yes&#8221; &gt; &lt;script language=&#8221;javascript&#8221;&gt; try { self.resizeTo(800, 400); } catch(e) { } &lt;\/script&gt; &lt;script language=&#8221;VBscript&#8221;&gt; Dim strSQL Sub btnShowJSON() ProcessJSON(fnQueryData) End Sub function RStoJSON(rs) dim sFld,fld,sFlds dim sRec,sRecs dim sRecordSet dim lRecCnt sRecordSet = &#8220;&#8221; sRecs = &#8220;&#8221; lRecCnt = 0 if rs.EOF &hellip; <a href=\"http:\/\/www.polysyncronism.com\/wordpress\/2017\/03\/23\/vbscript-javascript-for-json-from-sql-server\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;VBScript, Javascript for JSON from SQL Server&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,6,7,5],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","hentry","category-code","category-javascript","category-json","category-t-sql","category-vbscript"],"_links":{"self":[{"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":7,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":67,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/posts\/57\/revisions\/67"}],"wp:attachment":[{"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.polysyncronism.com\/wordpress\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}