Table ID 0 - Table


TemplateIDSiteIDTemplateID1TitleHtmlMenuHtmlFooterHtmlTemplateMenuDomainPageProductOrdersPageIDDocCatDocDocPageDataYearWebPathIsLogedIn
143114www.sqlexpert.no<!DOCTYPE html> <html> <head> <title>{$Domain.Title$} - {$Page.HeadTitle$}</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="keywords" content="" /> <base href="/"> <!-- Favicon --> <link rel="shortcut icon" href="/sqlkurs.no/images/favicon.png"> <!--------------- GLOBAL FILES ---------------> <link href='/css/bootstrap.min.css' rel='stylesheet'> <link href='/css/bootstrap-theme.min.css' rel='stylesheet'> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="/js/jquery.min.js"></script> <script type="application/x-javascript"> if (location.hash.length < 1) // fixing no scroll when bookmarks addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script> <!--fonts--> <link href='/css/robotofont.css' rel='stylesheet' type='text/css>' /> <script type="text/javascript" src="/js/move-top.js"></script> <script type="text/javascript" src="/js/easing.js"></script> <!-- Custom Theme files --> <link href="/angularjsmssql.com/css/style.css" rel="stylesheet" type="text/css" media="all" /> <!--<script src="/js/angular.min.js"></script>--> </head> <body ng-app="app" class="template_{$Template.TemplateID$} site_{$Template.SiteID$} page_{$Page.PageID$}"> {$Domain.GoogleAnalytics$} <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script> <script> var app = angular.module("app", [], function ($locationProvider) { $locationProvider.html5Mode(true); }); app.controller("postFormController", function ($scope, $http) { $scope.formdata = {}; $scope.response = [{}]; $scope.postdata = function (path) { $http.post(path, $scope.formdata).success(function (data) { $scope.response = data; }); } }); </script> {$Template.MenuHtml$} {$Page.TopText$} <!----> <div class="content {$page.CSSClass$}"> <div class="container"> <div class="content-grid"> {$Page.MidText$} </div> </div> <!--Give me feedback--> <div class="container"> <div class="row"> <div class="col-md-12"> <h1 class="thin">Give us feedback</h1> <form class="form-horizontal" ng-controller="postFormController" ng-submit="postdata('/api/form/supportform')"> <div class="form-group"> <label for="inputEmail3" class="control-label">Message</label> <!--<input type="text" class="form-control" id="inputEmail3" placeholder="Your message" ng-model="input.message">--> <textarea class="form-control ng-pristine ng-valid" ng-model="formdata.comment" required placeholder="Enter your message.." rows="4"></textarea> </div> <div class="form-group"> <button type="submit" class="just-do-in">Send</button> </div> <label class="control-label" for="download">{{response[0].SuccessMsg}}</label> <label class="control-label" for="download">{{response[0].ErrorMsg}}</label> </form> </div> </div> </div> <!--End of Give me feedback--> <div class="content-bottom"> <div class="container"> <h3>{$Domain.BottomHeader$}</h3> {$Domain.BottomText$} </div> </div> </div> <!----> {$Template.FooterHtml$} <script type="text/javascript"> $(document).ready(function () { $().UItoTop({ easingType: 'easeOutQuart' }); }); </script> <a href="#" id="toTop" style="display: block;"> <span id="toTopHover" style="opacity: 1;"> </span></a> <script type="text/javascript"> var sc = document.createElement('script'); sc.src = "https://www.sqlexpert.no/sa"; document.head.appendChild(sc); </script> <!-- Google Code for Konvertering - nye brukere p&aring; Angularjs Conversion Page --> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = 939298939; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_label = "bXQbCI6j4mAQ-6DyvwM"; var google_remarketing_only = false; /* ]]> */ </script> <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/939298939/?label=bXQbCI6j4mAQ-6DyvwM&amp;guid=ON&amp;script=0" /> </div> </noscript> <!-- Google-kode for remarketing-taggen --> <!-------------------------------------------------- Remarketing-tagger kan ikke knyttes til personlig identifiserende informasjon eller legges inn på sider som er relatert til sensitive kategorier. Du finner mer informasjon og flere instruksjoner for hvordan du konfigurerer taggen, på: http://google.com/ads/remarketingsetup ---------------------------------------------------> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = 939298939; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/939298939/?value=0&amp;guid=ON&amp;script=0" /> </div> </noscript> </body> </html><script type="text/javascript"> app.controller('logoutController', function ($scope, $http) { $scope.logout = function () { $http.get("/api/SQLWeb/logout").success(function (response) { location.reload(); }); }; }); </script> <div class="header fixed-top"> <div class="container"> <div class="logo"> <a href="/"><img src="{$Domain.TopLogo$}" alt=""></a> </div> <div class="top-nav img-responsive"> <span class="menu"><img src="/images/sqlexpert.no/menu.png" alt=""> </span> <ul> <sql repeat="i in Menu" filter=""> <li {$i.active$}><a href="{$i.href$}">{$i.Title$}</a></li> </sql> <sql if="{$Template.IsLogedIn$}=1"> <li ng-controller="logoutController"><a href ng-click="logout()">LOG OUT</a></li> </sql> </ul> <!--script--> <script> $("span.menu").click(function () { $(".top-nav ul").slideToggle(500, function () { }); }); </script> </div> <div class="clearfix"> </div> </div> </div><div class="footer"> <div class="container"> <div class="footer-top"> <div class="col-md-7 footer-left"> {$Domain.FooterText$} </div> <div class="col-md-5 submit" ng-controller="postFormController"> <input type="text" ng-model="formdata.email" placeholder="your email address"> <input type="button" value="Subscribe" ng-click="postdata('/api/form/subscribe')"><font color="green">{{response[0].SuccessMsg}}</font> <font color="red">{{response[0].ErrorMsg}}</font> <div class="clearfix"> </div> </div> <div class="clearfix"> </div> </div> <p class="footer-class">{$Domain.CopyRight$}</p> </div> 012322023/produkter0



Table ID 1 - Table1


PageIDParentPageIDhasSubMenuActivehrefTitle
201class="active"/produkterProdukter
300/tjenesterTjenester
2200/kontakt-ossKontakt oss
500/om-ossOm oss
11120/getlicense/accountMin side



Table ID 2 - Table2


SiteIDTextIDDomainTitleTopLogoBottomHeaderBottomTextTemplateIDFooterTextCopyRightFlagGoogleAnalyticsUsePageSiteIDFrontbannerImageHowDoesItWorkImageShowAngularShowJqueryClientSystemTitle
311ny.sqlexpert.noMicrosoft SQL Expert/images/sqlexpert.no/log.pngMicrosoft SQL ExpertLa oss hjelpe til med din Microsoft SQL database.2<p>SQLExpert - konsulenttjenester og programvare for SQL.</p> <p class="foot">Bygg effektive webportaler ved bruk av T-SQL.</p>Copyright © {$Template.Year$} <a href="https://www.sqlexpert.no">SQLExpert AS</a>. All rights reserved.<script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-51253384-1', 'sqlexpert.no'); ga('require', 'displayfeatures'); ga('send', 'pageview'); </script>/angularjsmssql.com/images/slider_front.png/angularjsmssql.com/images/howitworks.jpg00



Table ID 3 - Table3


siteidPageIDParentPageIDPathHeadTitlePageTitlePageSubTitleTopTextMidHeaderMidTextMenuActiveHtmlMenuTitleMenuOrderIDCSSClassMetaDescr
3120/produkterProdukterProdukter <h1>Produkter</h1> <hr /> <div class="row"> <div class="col-md-6 left"> <h3>Microsoft SQL Web Framework</h3> En SQL-server er ekspert på å håndtere og utveksle data, men er ofte ikke det best egnede verktøyet for å håndtere komplekse webportaler og bygge opp tekststrenger, som en webside består av. Dette har vi gjort noe med, og laget et verktøy som gjør at du får utnyttet databasen til det som MSSQL er best på, og at du allikevel kan lage kraftfulle webportaler med liten, men effektiv T-SQL kode.<br /> </div><div class="col-md-6 left"> Stort sett alle Publiseringsverktøy på markedet benytter en database i bakkant til å lagre både html-maler og innhold. Problemet med MSSQL er at man ofte ikke ønsker å bruke databaseserveren til å flette dette sammen, slik at du får fyllt malene med det innholdet du ønsker. Derfor har vi bygget en generelt rammeverk som gjør at dette flettes sammen utenfor databaseserveren. På denne måten får du benyttet både MSSQL og web-serveren til hva de er best egnet til.<br /> </div> </div> <div class="row"> <div class="col-md-6 left"> <br /> <h3>Portal-bygger INTRO</h3> Tenk deg at du har lageret en html-mal i en tabell, og at du ønsker å fylle denne med innhold. Hele koden består da av to ulike spørringer, en SELECT-spørring for å hente ut malen, og en SELECT-spørring for å hente ut innhold.<br /> <br /> To tabeller for demo<br /> <pre class="SQLCode"><span class="SQLKeyword">CREATE</span> <span class="SQLKeyword">TABLE</span> Template <span class="SQLOperator">(</span> TemplateID <span class="SQLKeyword">INT</span> <span class="SQLKeyword">PRIMARY</span> <span class="SQLKeyword">KEY</span> <span class="SQLOperator">,</span>html <span class="SQLKeyword">VARCHAR</span><span class="SQLOperator">(</span><span class="SQLFunction">max</span><span class="SQLOperator">)</span><span class="SQLOperator">)</span> <span class="SQLKeyword">CREATE</span> <span class="SQLKeyword">TABLE</span> WebContent <span class="SQLOperator">(</span> webpath <span class="SQLKeyword">VARCHAR</span><span class="SQLOperator">(</span>50<span class="SQLOperator">)</span> <span class="SQLKeyword">PRIMARY</span> <span class="SQLKeyword">KEY</span> <span class="SQLOperator">,</span>Title <span class="SQLKeyword">VARCHAR</span><span class="SQLOperator">(</span>200<span class="SQLOperator">)</span> <span class="SQLOperator">,</span>Description <span class="SQLKeyword">VARCHAR</span><span class="SQLOperator">(</span><span class="SQLFunction">max</span><span class="SQLOperator">)</span><span class="SQLOperator">)</span> </pre> En enkel mal:<br /> <pre class="SQLCode"><span class="SQLKeyword">INSERT INTO</span> Template <span class="SQLOperator">(</span>templateid<span class="SQLOperator">,</span>html<span class="SQLOperator">)</span> <span class="SQLKeyword">VALUES</span> <span class="SQLOperator">(</span>1<span class="SQLOperator">,</span><span class="SQLString">'&lt;html&gt; &lt;head&gt; &lt;title&gt;{$Content.Title$}&lt;/title&gt; &lt;/head&gt; &lt;body&gt; {$WebContent.Description} &lt;/body&gt; &lt;/html&gt;'</span><span class="SQLOperator">)</span></pre> </div><div class="col-md-6 left"> To enkle sider:<br /> <pre><span class="SQLKeyword">INSERT INTO</span> WebContent <span class="SQLOperator">(</span>webpath<span class="SQLOperator">,</span>Title<span class="SQLOperator">,</span>Description<span class="SQLOperator">)</span> <span class="SQLKeyword">VALUES</span> <span class="SQLOperator">(</span><span class="SQLString">'/om-oss'</span><span class="SQLOperator">,</span><span class="SQLString">'Om oss'</span><span class="SQLOperator">,</span><span class="SQLString">'SQLExpert AS, Gullrisveien 8, 1715 Yven'</span><span class="SQLOperator">)</span> <span class="SQLKeyword">INSERT INTO</span> WebContent <span class="SQLOperator">(</span>webpath<span class="SQLOperator">,</span>Title<span class="SQLOperator">,</span>Description<span class="SQLOperator">)</span> <span class="SQLKeyword">VALUES</span> <span class="SQLOperator">(</span><span class="SQLString">'/produkter'</span><span class="SQLOperator">,</span><span class="SQLString">'Produkter'</span><span class="SQLOperator">,</span><span class="SQLString">'Prøv vårt nye web-verktøy'</span><span class="SQLOperator">)</span></pre> </div><div class="col-md-6 left"> Så selve T-SQL koden:<br /> <pre class="SQLCode"><span class="SQLKeyword">SELECT</span> <span class="SQLOperator">*</span><span class="SQLOperator">,</span>1 <span class="SQLKeyword">AS</span> WebContent<span class="SQLComment">-- Referanse, WebContent er tabell 1</span> <span class="SQLKeyword">FROM</span> Template <span class="SQLKeyword">WHERE</span> TemplateID <span class="SQLOperator">=</span> 1 <span class="SQLKeyword">SELECT</span> <span class="SQLOperator">*</span> <span class="SQLKeyword">FROM</span> WebContent <span class="SQLKeyword">WHERE</span> webpath <span class="SQLOperator">=</span> @webpath </pre> Slik ble resultatet: <a href="/websqldemo/intro/om-oss">/om-oss</a> (<a href="/websqldemo/intro/om-oss?getrawdata=true">raw</a>) - <a href="/websqldemo/intro/produkter">/produkter</a> (<a href="/websqldemo/intro/produkter?getrawdata=true">raw</a>)<br /> <br /> Du kan legge til så mange tabeller du ønsker, og du kan hente ut data fra samtlige. Systemet støtter også repeatere, så du f.eks. kan bygge en meny. Det er også støtte for if-statements i malen. Dette var veldig overfladisk i forhold til hvordan dette fungerer. Hvorfor ikke teste det ut?<br /> <br /> Som en referanse er nettsiden du er inne på nå bygget opp med dette verktøyet. Bevis? Legg på /?getrawdata=true bak hvilken som helst side, så ser du hvordan den er bygget opp. For eksempel <a href="/produkter?getrawdata=true">denne</a>. </div> </div> <div class="row"> <div class="col-md-6 left"> <br /> <h3>Portal-bygger INTRO 2</h3> La oss gjøre det litt mer spennende. Vi bruker de samme tabellene, men legger til en "repeater". <br /> La oss legge til en ny mal:<br /> <pre class="SQLCode"><span class="SQLKeyword">INSERT INTO</span> Template <span class="SQLOperator">(</span>templateid<span class="SQLOperator">,</span>html<span class="SQLOperator">)</span> <span class="SQLKeyword">VALUES</span> <span class="SQLOperator">(</span>2<span class="SQLOperator">,</span><span class="SQLString">'&lt;html&gt; &lt;head&gt; &lt;title&gt;{$Content.Title$}&lt;/title&gt; &lt;/head&gt; &lt;body&gt; {$WebContent.Description$}&lt;br /&gt; &lt;br /&gt; &lt;sql repeat=&quot;r in Pages&quot; filter=&quot;&quot;&gt; &lt;a href=&quot;{$a.webpath$}&quot;&gt;{$a.Title$}&lt;/a&gt;&lt;br /&gt; &lt;/sql&gt; &lt;/body&gt; &lt;/html&gt;'</span><span class="SQLOperator">)</span></pre> </div><div class="col-md-6 left"> Så selve T-SQL koden:<br /> <pre class="SQLCode"><span class="SQLKeyword">SELECT</span> <span class="SQLOperator">*</span><span class="SQLOperator">,</span>1 <span class="SQLKeyword">AS</span> WebContent<span class="SQLComment">-- Referanse, WebContent er tabell 1</span> ,</span>2 <span class="SQLKeyword">AS</span> Pages<span class="SQLComment">-- Referanse, Pages er tabell 2</span> <span class="SQLKeyword">FROM</span> Template <span class="SQLKeyword">WHERE</span> TemplateID <span class="SQLOperator">=</span> 2 <span class="SQLKeyword">SELECT</span> <span class="SQLOperator">*</span> <span class="SQLKeyword">FROM</span> WebContent <span class="SQLKeyword">WHERE</span> webpath <span class="SQLOperator">=</span> @webpath <span class="SQLKeyword">SELECT</span> <span class="SQLOperator">*</span> <span class="SQLKeyword">FROM</span> WebContent </pre> Slik ble resultatet: <a href="/websqldemo/intro2/om-oss">/om-oss</a> (<a href="/websqldemo/intro2/om-oss?getrawdata=true">raw</a>) - <a href="/websqldemo/intro2/produkter">/produkter</a> (<a href="/websqldemo/intro2/produkter?getrawdata=true">raw</a>)<br /> <br /> Det er også støtte for if-statements, noe vi ikke går i detalj på nå. Se mer om dette i dokumentasjonen. </div> </div> <div class="row"> <div class="col-md-6 left"> <br /> <h3>AJAX</h3> Med samme komponent som Portal-byggeren, kan du også kommunisere med en webklient ved bruk av AJAX-kall. Systemet støtter alle web-kall som POST, DELETE, GET, PUT og lignende.<br /> <br /> </div><div class="col-md-6 left"> <h4>Input</h4> Alt bygges opp med en felles STORED PROCEDURE. Denne får en god del inputparametere fra klienten, slik at du kan bearbeide data og gi en ønsket tilbakemelding tilbake til klienten. Input-parametere på prosedyren er @SessionID, @Ip, @UrlParts, @UrlParams, @Xml, @Method og @ContentType. Basert på dette vet du domenet, hvilken url som hentes, og data som klienten sender inn. Ved å benytte @SessionID kan du også benytte session-handling, og rettighetsstyre innholdet. <br /> <br /> <h4>Output</h4> Output kan bygges opp på mange måter, men den vanligste er å bare returnere en tabell. Denne tabellen blir konvertert til JSON før den sendes tilbake til webklienten. <a href="/websqldemo/response">Eksempel: </a> <pre class="SQLCode"><span class="SQLKeyword">SELECT</span> <span class="SQLString">'ok'</span> <span class="SQLKeyword">AS</span> Response <span class="SQLOperator">,</span><span class="SQLString">'Dataene er lagret'</span> <span class="SQLKeyword">AS</span> [Description] </pre> </div> </div> <br /><br /> <div class="container"> <div class="row"> <h3>Priser</h3> </div> </div> <div class="container"> <div class="row"> <div id="no-more-tables"> <div class="left"> <h4>Bedrift</h4> <b>Bedrift:</b> Kommersiell virksomheter, inklusive kommune og stat.<br /> </div> <table class="col-md-12 table-bordered table-striped table-condensed cf"> <thead class="cf"> <tr><th>Server</th><th>Kjøp versjon 2.x</th><th></th></tr> </thead> <tbody> <tr><td data-title="Server">Enkelt domene, enkel web-server</td><td data-title="Etablering">14.900,- eks mva</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Kjøp</a></td></tr> <tr><td data-title="Server">Mange domener, enkel web-server</td><td data-title="Etablering">39.000,- eks mva</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Kjøp</a></td></tr> <tr><td data-title="Server">Enkelt domene, flere web-servere</td><td data-title="Etablering">39.000,- eks mva</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Kjøp</a></td></tr> </tbody> </table> </div> </div> </div> <br /><br /> <div class="container"> <div class="row"> <div id="no-more-tables"> <div class="left"> <h4>Nonprofit, med referanse</h4> Private og ikke-kommersielle virksomheter.<br /> <b>Referanse:</b> Alle sider hvor komponenten benyttes må ha link til http://www.sqlexpert.no <br /> </div> <table class="col-md-12 table-bordered table-striped table-condensed cf"> <thead class="cf"> <tr><th>Server</th><th>Kjøp versjon 2.x</th><th></th></tr> </thead> <tbody> <tr><td data-title="Server">Enkelt domene, enkel web-server</td><td data-title="Etablering">Gratis med referanse</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Last ned</a></td></tr> <tr><td data-title="Server">Mange domener, enkel web-server</td><td data-title="Etablering">Gratis med referanse</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Last ned</a></td></tr> <tr><td data-title="Server">Enkelt domene, flere web-servere</td><td data-title="Etablering">Gratis med referanse</td><td data-title="Per mnd"><a class="just-do-in" href="/getlicense/register">Last ned</a></td></tr> </tbody> </table> </div> </div> </div> class="active"Produkter20