Parameterisering af databasekald med ASP og ADO

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Starte visningen fra side:

Download "Parameterisering af databasekald med ASP og ADO"

Transkript

1 Denne guide er oprindeligt udgivet på Eksperten.dk Parameterisering af databasekald med ASP og ADO Jeg har efterhånden set en del spørgsmål her på Eksperten vedr. SQL injections og hvordan man kan beskytte sig. Efter min opfattelse er det rigtige svar: Parameterisering! Dette vil jeg forsøge at beskrive hvordan gøres med Commandobjektet (ADO og ASP). Skrevet den 13. Apr 2010 af softspot I kategorien Programmering / ASP Ændringslog : Artikel oprettet : Tilføjelse af nyt afsnit om genbrug af command-objektet, samt sektion med kommentar til kommentar : Ombrydning af kodeeksempler, så de ikke skaber scrollbars i rammerne til kodeeksemplerne : Tilføjelse af en kort udgave til kald af Command-objektet, samt eksempel på indpakning af Command-objekt oprettelsen. Den gængse metode En gængs metode at lave databasekald i ASP, er at sammensætte en SQL-streng af nogle SQL kommandoer og nogle parametre. Dette er dog en kilde til problemer på flere områder. Dels risikerer man at typen af en parameter ikke stemmer overens med det felt man forsøger at gemme data i, dels bliver man sårbar overfor "SQL-injections". Ydermere har strengsammensætningsmetoden også en tendens til at blive uoverskuelig, hvis man ikke holder en stram disciplin. Eksempel på strengsammensat SQL: dim sql sql = "SELECT * " & _ "FROM tabel " & _ "WHERE kodeord = '" & request.querystring("kodeord")& "' " & _ "AND brugernavn = '" & request.querystring("brugernavn") & "'" Når du har sådan en konstruktion i din kode, skal alarmklokkerne begynde at ringe, fordi du har åbnet døren på vid gab for SQL-injections. Request.QueryString er som bekendt værdier der sendes via url'en og er derfor noget af det simpleste at overføre til en side. Det bliver ikke meget bedre af at det er Request.Form der benyttes! En begynder kan relativt let POSTe en form til en url. Nu kunne jeg begynde at skrive en masse om hvordan man modellerer sine input, så de er sikret mod SQLinjections, men det vil jeg ikke (det er der skrevet mange andre artikler om på internettet). Nej, jeg vil i stedet slå et slag for parametre og Command-objekter i ADO! Parametre og Command-objektet Med parametre kan du være nogenlunde sikker på, at databasekaldet (hvis det når databasen) er korrekt og fri for injections. Før jeg går igang med at eksemplificere brugen af Command, vil jeg starte med at få en ting på plads, nemlig de konstanter som benyttes i forbindelse med ADO. Konstanterne gør koden lettere og mere

2 intuitiv at læse. Der er umiddelbart 3 muligheder for at få disse konstanter ind i koden (faktisk 4, men at sidde og definere dem selv, synes jeg er lidt omsonst, så den vil jeg ikke foreslå): 1. Du kan inkludere en fil (adovbs.inc) i den side som benytter ADO og dermed få adgang til konstanterne i den specifikke side. Dette synes jeg dog ikke specielt godt om, da man dels skal sørge for at den include er med hver gang man skal bruge ADO, dels lægger den en ekstra belastning på serveren, i og med den skal indlæses i den samlede side hver gang siden kaldes. Du kan læse lidt mere om denne metode her: 2. Et noget bedre alternativ er at erklære et METADATA-element i siden, som peger på TypeLibrary til ADO. På denne måde skal serveren ikke bruge kræfter på at indlæse en ekstra fil hver gang siden vises. Dog har denne metode stadig den svaghed, at man skal huske dette METADATA-element hver gang ADO skal bruges. 3. Den bedste løsning er efter min mening, at erklære førnævnte METADATA-element i applikationens global.asa-fil, da man så har adgang til ADO-konstanterne fra alle sider i applikationens scope. Applikationens scope omfatter altså alle filer og mapper (og undermapper) som ikke definerer en ny virtuel applikation. Virtuelle applikationer har deres eget scope og skal derfor erklære METADATA-elementet i sin egen global.asa for at få adgang til konstanterne. METADATA-elementet ser således ud: <!-- METADATA TYPE="typelib" uuid=" aa006d2ea4" --> Igang med Command-objektet Nu er vi klar til at kaste os over Command-udgaven af tidligere viste databaseopslag. Det kunne tage sig således ud: dim sql, cmd, rs dim kodeord, brugernavn kodeord = request.querystring("kodeord") brugernavn = request.querystring("brugernavn") sql = "SELECT * " & _ "FROM tabel " & _ "WHERE kodeord =? " & _ "AND brugernavn =?" cmd.parameters.append _ advarchar, adparaminput, 20, kodeord) cmd.parameters.append _ advarchar, adparaminput, 20, brugernavn)

3 set rs = cmd.execute() ' '... og resten af databaseoperationerne her! ' Eller en quick and dirty udgave som kan bruges i mange tilfælde i stedet for ovenstående: dim sql, cmd, rs dim kodeord, brugernavn kodeord = request.querystring("kodeord") brugernavn = request.querystring("brugernavn") sql = "SELECT * " & _ "FROM tabel " & _ "WHERE kodeord =? " & _ "AND brugernavn =?" set rs = cmd.execute(, array(kodeord,brugernavn)) ' '... og resten af databaseoperationerne her! ' Denne metode kan som nævnt bruges i mange tilfælde og er noget mere kompakt og tilgængelig end versionen med eksplicitte parametererklæringer. Der kan dog være tilfælde hvor det er nødvendigt med mere kontrol over parametrenes typer og så må man "tilbage" til den lange udgave. Regler der skal overholdes Der er nogle ting man skal være opmærksom på i forbindelse med parameterisering via Commandobjektet. Jeg vil prøve at komme ind på de vigtigste herunder. Angivelse af parameterværdier (pladsholdere) Der hvor man ønsker at indsætte en parameter i SQL-sætningen, placeres et spørgsmålstegn. Der skal ikke tages hensyn til typen af parameteren i SQL-sætningens syntaks, dvs. der skal ikke apostroffer (') omkring tekst-parametre eller hash (#) omkring datoer (i Access), da dette styres under oprettelsen af parameteren i command-objektets parameter-collection. Sekvens af parametre Det er vigtigt, at parametrene oprettes i command-objektetks parameter-collection, i den rækkefølge de forekommer i SQL-sætningen, da ADO ikke har nogen anden måde at koble parametre til SQL-sætningen end sekvensen (i og med pladsholdere for parametre udgøres af et spørgsmålstegn har de ikke nogen værdi i forhold til at identificere feltet).

4 Navngivning af parametre Det er ikke så vigtigt hvad man kalder sine parametre, blot man sørger for at sende dem i den rækkefølge de er angivet i SQL-sætningen. For læsbarhedens og gennemskuelighedens skyld vil jeg da anbefale, at man benytter feltets navn til parameteren, så der er mindre tvivl om koblingen af en parameter til SQLsætningen. Typen af parametre Det er vigtigt, at typen på parameteren stemmer overens eller er kompatibel med den type feltet har i databasen, da ADO ellers vil kvittere med en fejl. Ligeledes er det vigtigt, at typen på værdien af parameteren er kompatibel med den type, som parameteren er erlæret med. Hvis ikke den er det, vil ADO ligeledes kvittere med en fejl. Typiske fejl er integer-parametre som fødes med tomme strenge og dermed ikke er gyldige numeriske værdier, men også tomme dato'er eller strenge der er for lange til at passe ned i den definerede parameter giver problemer. Man slipper altså ikke for at validere brugerens data, selvom man benytter Command-objektet! Understøttelse af parametre Undestøttelsesgraden af parameterisering er forskellig fra "provider" til "provider" og man skal derfor undersøge, om den databasedriver man benytter, understøtter de features man benytter. Der findes muligheder for at spørge ADO om disse ting, men det er ikke noget jeg har benyttet mig af, da jeg altid har arbejdet i et homogent miljø og dermed altid har vidst hvad den driver jeg benytter kan og ikke kan. Derfor vil jeg henvise dig til MSDN eller Google for at finde mere avancerede features i forbindelse med ADO og Command-objektet. Med disse ting på plads kan jeg prøve at demonstrere et par andre typiske databaseoperationer hvor Command-objektet er handy. Oprettelse af nye data Oprettelse af data i en tabel er et typisk scenarie, hvor brugeren er leverandør af data og et andet typisk eksempel på, hvor man skal være ekstra opmærksom på injectionforsøg. En insert kunne håndteres således ved brug af command: dim sql, cmd, recordcount dim kodeord, brugernavn, kodeord = request.form("kodeord") brugernavn = request.form("brugernavn") = request.form(" ") sql = "INSERT INTO tabel (kodeord, brugernavn, ) VALUES(?,?,?)" cmd.parameters.append _ advarchar, adparaminput, 20, kodeord) cmd.parameters.append _ advarchar, adparaminput, 20, brugernavn) cmd.parameters.append _ advarchar, adparaminput, 255, )

5 recordcount = 0 cmd.execute recordcount if recordcount = 1 then response.write "Dine oplysninger er nu gemt." else response.write "Dine oplysninger blev IKKE gemt." response.write " Forsøg evt. igen eller kontakt support." end if Som det ses, er der ikke meget forskel på hvordan Command-objektet benyttes mht. initiering og opsætning af parametre. Selve kaldet returnerer, i dette tilfælde, ikke noget brugbart recordset, så derfor undlader jeg at gemme det i en variabel. I stedet sender jeg en parameter med til cmd.execute for at få oplysninger om, hvormange rækker det blev påvirket af min INSERT. Dette benytter jeg til at sandsynliggøre, at indsættelsen gik godt. I dette tilfælde skal recordscount gerne indholde 1, da der oprettes netop én ny række i tabellen. Samme mønster vil gøre sig gældende for UPDATE og DELETE. Stored Procedues Hidtil har jeg kun behandlet tekstbaserede commands, men hvis jeg har en stored procedure, som skal udføres, er opskriften nogenlunde den samme, blot med den ændring, at cmd.commandtype skal sættes til adcmdstoredproc i stedet for adcmdtext. Eksempel, hvor jeg har en stored procedure som sletter en bruger fra databasen og til dette formål tager den brugerens navn som parameter: sql = "spsletbruger" cmd.commandtype = adcmdstoredproc cmd.parameters.append _ advarchar, adparaminput, 20, brugernavn) recordcount = 0 cmd.execute recordcount if recordcount = 1 then response.write "Dine oplysninger er nu slettet." else response.write "Dine oplysninger blev IKKE slettet." response.write " Forsøg evt. igen eller kontakt support." end if Som med INSERT-eksemplet er der heller ikke umiddelbart noget brugbart resultat efter denne operation, så jeg vælger bare at aflæse antallet af rækker som blev påvirket af denne handling.

6 Genbrug af command-objektet Skulle man have behov for at udføre den samme databaseoperation flere gange efter hinanden, kan man med fordel benytte det samme command-objekt og blot udskifte parametrenes værdier (det er vel en af de andre vigtige årsager til at benytte command-objektet, da man på denne måde kan vinde noget performance i og med man slipper for at oprette og nedlægge command-objekter for hver iteration). Det kunne tage sig nogenlunde således ud: dim sql, cmd, recordcount dim arrbrugere, bruger arrbrugere = array( _ _ _ _ _ _ ) sql = "INSERT INTO tabel (kodeord, brugernavn, ) VALUES(?,?,?)" cmd.parameters.append _ advarchar, adparaminput, 20) cmd.parameters.append _ advarchar, adparaminput, 20) cmd.parameters.append _ advarchar, adparaminput, 255) for each bruger in arrbrugere = bruger(1) = bruger(0) = bruger(2) recordcount = 0 cmd.execute recordcount if recordcount = 0 then response.write "Oplysninger om " & bruger(0) response.write " kunne IKKE gemmes!" end if next Lidt dovenskab skader vel ikke Som mange nok har luret, er selve oprettelsen af command-objektet en relativ triviel opgave og der kan spares en del liniers kode (set på applikationsplan), hvis man lige pakker den del lidt ind. Dette har jeg lavet et lille eksempel på herunder.

7 function CreateTextCommand(conn, sql) dim cmd set CreateTextCommand = cmd end function Funktionen opretter, ikke overraskende, et command-objekt og returnerer dette til den kaldende part. Den kaldende part sparer altså tre liniers triviel kode hver gang, hvilket dels gør tingene hurtigere at kode, men også nemmere at overskue (når først man har lært hvad funktionen CreateTextCommand gør ;-)). Funktionen kan bruges således i praksis (her anvendes quick and dirty-metoden også for at demonstrere hvordan dette kan se ud i en opdateringssituation): dim sql, cmd, recordcount dim kodeord, brugernavn, kodeord = request.form("kodeord") brugernavn = request.form("brugernavn") = request.form(" ") sql = "INSERT INTO tabel (kodeord, brugernavn, ) VALUES(?,?,?)" set cmd = CreateTextCommand(conn, sql) recordcount = 0 cmd.execute recordcount, array(kodeord, brugernavn, ) if recordcount = 1 then response.write "Dine oplysninger er nu gemt." else response.write "Dine oplysninger blev IKKE gemt." response.write " Forsøg evt. igen eller kontakt support." end if Konklusion Nu er command-objektets mest basale muligheder introduceret og der er rig mulighed for at udbygge sin viden om de features som stilles til rådighed af ADO. Du kan også se, at der ikke umiddelbart er mulighed for at SQL-injicere når der benyttes parametre sammen med Command-objektet, da mulighederne for at snyde med formatet af input, så de påvirker den genererede SQL-sætning, er fjernet. Kravet om at validere input består (som det også gør med strengsammensætningsmetoden), da det stadig kan opstå fejl, hvis data har forkert format i forhold til parametertypen. Fejlhåndtering kan være med til at afbøde dette lidt, men det er som udgangspunkt bedre, at sikre datavaliditet frem for at fejlhåndtere sig

8 ud af datainvaliditet. Min egen primære kilde til at undersøge mulighederne ved ADO er MSDN, så derfor vil jeg referere til følgende: som er programmørens guide og referencemanualen til ADO. som er en lille samling af sider der beskriver hvordan man benytter Command-objektet. Der er ingen tvivl om at der findes meget mere om emnet rundt omkring, men mine egne behov er typisk af opslagskarakter, så derfor er det ovenstående materialer jeg benytter mest. Kommentar til kommentar til artiklen arne_v >> Naturligvis! En rigtig vigtig pointe hvis man arbejder med batchoperationer. Jeg har tilføjet et afsnit om dette ("Genbrug af command-objektet"). thesurfer >> Jeg er enig i at man skal beskytte sine kodefiler og vil i princinppet også vælge at beskytte mine filer. Dog er den refererede inc-fil public domain, så den er der nok ikke så stor risiko ved at lade folk hente (hvis bare man lader være med at tilføje sin egen kode i den :-)). erikjacobsen >> Enig. Jeg har desværre kun kendskab til.net ud over ASP, men vil da gerne bekræfte at det også her kan lade sig gøre. Det kan være der herfra kommer en artikel om det på et tidspunkt (hvis der ikke er nogen som kommer mig i forkøbet... UPS! Jeg kan se der allerede er lavet et par stykker af arne_v :-)). Kommentar af erikjacobsen d. 20. Nov Og man kan tilføje, at i alle andre frameworks og lignende, findes en tilsvarende mulighed. Kommentar af thesurfer d. 20. Nov Meget god artikel. Men man må aldrig bruge ".inc"-filer (f.eks. adovbs.inc), da disse filer er ren tekst som ikke bliver afviklet. Dvs, hvis man kan gætte filnavnet (f.eks. hvis man kan genkende systemet/forum/osv), kan man få fat på indholdet af ".inc"-filen (database-oplysninger, brugernavn, kodeord osv).. Brug heller sprogets eget filtype (f.eks. adovbs.asp) og definer variablerne der. Kommentar af arne_v d. 24. Nov Glimrende. Man kan også assigne værdier til parametrene efter at man har created og appended dem. Kommentar af trer d. 07. Dec Fin artikel. Kommentar af windcape d. 22. Nov Kommentar af erizias (nedlagt brugerprofil) d. 07. Jul Kanon artikel, dog savner jeg lidt "hvad gør denne, og hvad gør denne" :) F.eks. hvordan følgende 2 statements kan være lig hinanden:

9 cmd.parameters.append advarchar, adparaminput, 20, kodeord) cmd.parameters.append advarchar, adparaminput, 20, brugernavn) set rs = cmd.execute() OG set rs = cmd.execute(, array(kodeord,brugernavn)) For mig at se, får den nederste metode jo ikke at vide om det er varchar, ints eller lignende samt hvor mange tegn det indeholder, som den øverste metode gør :) Det savner jeg lidt i artiklen, men ellers en kanon artikel som fortæller om grundprincipperne af parameteriseringen :)

Database design for begyndere

Database design for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

SQL for MySQL-begyndere

SQL for MySQL-begyndere Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til

Læs mere

Afsending af s vha. ASP

Afsending af  s vha. ASP Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script. Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.

Læs mere

Filen global.asa, en asp programmørs ven

Filen global.asa, en asp programmørs ven Denne guide er oprindeligt udgivet på Eksperten.dk Filen global.asa, en asp programmørs ven Artiklen beskriver opbygning, brug, muligheder og begrænsninger mm for global.asa Undervejs bliver der givet

Læs mere

Dynamisk PHP design OPDATERET

Dynamisk PHP design OPDATERET Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009

Læs mere

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien

Læs mere

Delphi og Databaser for begyndere

Delphi og Databaser for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med

Læs mere

Fotoalbum i Access - del 1

Fotoalbum i Access - del 1 Denne guide er oprindeligt udgivet på Eksperten.dk Fotoalbum i Access - del 1 Målet med artiklen er at læseren bliver i stand til at lave et "Fotoalbum" i Access (2000) samt nok så vigtigt at denne får

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

Tagwall med Php & MySQL

Tagwall med Php & MySQL Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall

Læs mere

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer Denne guide er oprindeligt udgivet på Eksperten.dk TreeView i Access II Jeg vil i denne anden udgave af treeview føljetonen begynde på et mere brugbart eksempel med et TreeView. Vi laver en ny database

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering

Læs mere

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online. Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

OPC Access 3.0 opdatering via Stored Procedure

OPC Access 3.0 opdatering via Stored Procedure OPC Access 3.0 opdatering via Stored Procedure Dette dokument gennemgår et eksempel på, hvordan OPC Access 2.0 kan konfigureres til at opdatere en database via en stored procedure. OPC ACCESS 2.0 OPDATERING

Læs mere

Hack of the Month opgave 2

Hack of the Month opgave 2 Hack of the Month opgave 2 www.hackofthemonth.dk Holdet bag www.hackofthemonth.dk: Søren Rasmus (ikke mig) Roninz Stiller hver måned en ny opgave: Applikationssikkerhed Webapplikationssikkerhed Slide 2

Læs mere

MsSQL: Basal performance tuning, part 1

MsSQL: Basal performance tuning, part 1 Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /

Læs mere

Reeksamen, DSDS, forår 2008

Reeksamen, DSDS, forår 2008 Reeksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 22. august 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Flerbruger miljø, opdel database

Flerbruger miljø, opdel database Denne guide er oprindeligt udgivet på Eksperten.dk Flerbruger miljø, opdel database Denne artikel henvender sig primært til begyndere og let øvede brugere af Access der ønsker at vide noget om flerbruger

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt Foto-Applikation Dokumentation Et Kod-i-Ferien projekt 1 Indholdsfortegnelse Systemets generelle opsætning... 3 Systemets elementer... 4 iphone applikation... 4 PHP-script... 4 Wordpress-plugin... 4 Website...

Læs mere

Procesbeskrivelse - Webprogrammering

Procesbeskrivelse - Webprogrammering Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...

Læs mere

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder. Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations

Læs mere

Kom godt i gang med Hostcenter Danmarks Webadmin

Kom godt i gang med Hostcenter Danmarks Webadmin Kom godt i gang med Hostcenter Danmarks Webadmin Formålet med denne artikel er at give en hurtig overblik over funktionerne i Hostcenter Danmarks Webadmin. Webadmin er det værktøj der bruges til at styre

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger

Læs mere

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13 1 Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Hvad er en makro... 10 Hvad kan du bruge en makro til... 10 Hvad en makro er (Visual Basic for Applications)... 11 Det hele sker

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING Copyr i g ht 2013, SAS Ins titut e Inc. All rights res er ve d. Livet som SAS-programmør er blevet lettere med SAS Enterprise

Læs mere

Microsoft Log Parser, Windows logfil analyse

Microsoft Log Parser, Windows logfil analyse Denne guide er oprindeligt udgivet på Eksperten.dk Microsoft Log Parser, Windows logfil analyse Microsoft's logfiler er ikke lette at bruge. med Microsoft Log Parser, har du alle muligheder. Log parser

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

Superbruger Information. Ver. 5.1, 2. udgave - juni 2004-1 -

Superbruger Information. Ver. 5.1, 2. udgave - juni 2004-1 - Superbruger Information Ver. 5.1, 2. udgave - juni 2004-1 - Import /eksport og opdatering af databasen I dette kapitel vil vi se på nogle af de muligheder der er for import og eksport af data til og fra

Læs mere

Excel som database i ASP via ADO

Excel som database i ASP via ADO Denne guide er oprindeligt udgivet på Eksperten.dk Excel som database i ASP via ADO Viser hvordan excel kan bruges som database i ASP. Artiklen viser hvordan man henter, indsætter, opdater og sletter fra

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

Send fra Access.

Send  fra Access. Denne guide er oprindeligt udgivet på Eksperten.dk Send e-mail fra Access. Denne artikel et rettet mod begyndere i Access. Artiklen viser hvordan du sender elektronisk post fra Access, både ved hjælp af

Læs mere

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune Værktøjer fra værktøjskassen Søren Breddam, Stevns Kommune sb@stevns.dk 1stevns kommune Mapbasic i Stevns Kommune Data Kørsel af planlagte opgaver, så data altid er opdaterede. Logfil til overvågning Dagligt

Læs mere

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard Serversideprogrammering, CMS og eshop Dag 1: Introduktion og serverside programmering Niels Østergaard Dagens program Introduktion til forløbet Begrebet serverside Introduktion til PHP-programmering Tilmelding

Læs mere

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Ekstra hastighed med array's i Excel-VBA

Ekstra hastighed med array's i Excel-VBA Denne guide er oprindeligt udgivet på Eksperten.dk Ekstra hastighed med array's i Excel-VBA Brugen af arrays til indlæsning af og skrivning til celler i Excel kan give betragtelige hastighedsforøgelser

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013 MapBasic brugergruppe Geografiske objekter Slå mute fra hvis I vil sige eller spørge om noget Peter Horsbøll Møller Senior Systems Engineer April 2013 Program MapBasic IDE som udviklingsværktøj Geografiske

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

Installation af WeroShop 2.8

Installation af WeroShop 2.8 2013 Installation af WeroShop 2.8 Tommy Westerdahl Christensen Wero Electronics 01-01-2013 Indholdsfortegnelse INDLEDNING... 2 INSTALLATION... 3 GENEREL OPSÆTNING... 8 MOMS OPSÆTNING... 10 BETALINGSFORMER...

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Undtagelseshåndtering i C#

Undtagelseshåndtering i C# Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide

Læs mere

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF.

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF. Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF. Vejledningen her beskriver hvordan man opbygger en form i HTML og sender indholdet af felterne til JitBesked. Det kræver du

Læs mere

0.9 19-09-2012 DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat.

0.9 19-09-2012 DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat. Specifikation 19. september 2012 DAVAR J.nr. 2012-6211-281 Sagdokumentformat Versionshistorik Version Dato Initialer Noter 0.7 15-06-2012 DAVAR Høringsversion. Indsat MeddelelseAttention. 0.9 19-09-2012

Læs mere

Installation af WeroShop 2.4 S

Installation af WeroShop 2.4 S 2012 Installation af WeroShop 2.4 S Tommy Westerdahl Christensen Wero Electronics 23-02-2012 Indholdsfortegnelse INDLEDNING... 2 INSTALLATION... 3 GENEREL OPSÆTNING... 8 MOMS OPSÆTNING... 10 BETALINGSFORMER...

Læs mere

Python 3 kursus lektion 1:

Python 3 kursus lektion 1: Python 3 kursus lektion 1: Her laves et nyt program Her køre programmet! Her skrives koden: Gem (CTRL-s) Tryk F5 (for at køre) www.madsmatik.dk d.14-01-2016 1/5 At skrive til skærmen: Hello World Man kan

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

Bruger v1.5 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk

Bruger v1.5 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk Bruger v1.5 QUICK GUIDE Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk INTRODUKTION TIL REKVI-SKOLE Ideen med Rekvi-skole systemet udsprang fra et behov

Læs mere

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af

Læs mere

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Programmering i C. Lektion november 2008

Programmering i C. Lektion november 2008 Programmering i C Lektion 3 18. november 2008 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler Kontrolstrukturer Udvælgelse Gentagelse

Læs mere

Upload af billeder/filer for nybegyndere Del. 2

Upload af billeder/filer for nybegyndere Del. 2 Denne guide er oprindeligt udgivet på Eksperten.dk Upload af billeder/filer for nybegyndere Del. 2 I denne Del vil jeg ikke gaa saa dybt i fil upload som i sidste. Jeg vil i stedet forklare om funktioner

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Exchange 2010 SSL certifikat administration Følgende vejledning beskriver hvordan man vælger hvilke adresser der skal være i ens Exchange 2010 SAN SSL certifikat. Derudover er der tekniske guides til at

Læs mere

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5

Datatransport... 2. Import & Eksport af data... 2. Generelt... 2. Import/eksport... 4. Felter i Import og Eksport... 5 Indhold Datatransport... 2 Import & Eksport af data... 2 Generelt... 2 Import/eksport.... 4 Felter i Import og Eksport... 5 Trykknapper til Import og Eksport... 7 1 Alle... 7 2 Slet... 7 3 Editor... 7

Læs mere

Sådan skriver du artikler til Eksperten!

Sådan skriver du artikler til Eksperten! Denne guide er oprindeligt udgivet på Eksperten.dk Sådan skriver du artikler til Eksperten! Når du skriver artikler handler det om at få den ud til de rigtige personer, og vise den frem så den er let forståelig.

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

The Design Diaries PHP projekt

The Design Diaries PHP projekt The Design Diaries PHP projekt Anna Emely Jensen cph-aj215@cphbusiness.dk www.annaemely.dk Oliver Alexander Vedel Trojhan cph-ot46@cphbusiness.dk www.olivervedeltrojahn.com Link til GoLogo blog http://olivervedeltrojahn.com/project%203%20php/index.php

Læs mere

Efter installation af GEM Drive Studio software fra Delta s CD-rom, skal hoved skærmbilledet se således ud: (koden til administrator adgang er: admin)

Efter installation af GEM Drive Studio software fra Delta s CD-rom, skal hoved skærmbilledet se således ud: (koden til administrator adgang er: admin) Hurtig opstart af Infranor XtrapulsPac-ak drev: Dette er en enkelt og kortfattet vejledning i opsætningen af XtrapulsPac-ak driver til anvendelse i stand-alone mode. Ingen Profibus forbindelse. For senere

Læs mere

HTML, PHP, SQL, webserver, hvad er hvad??

HTML, PHP, SQL, webserver, hvad er hvad?? Dagens menu HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner, oprettelse og kald (og variable på tværs af funktioner) echo vs return? if-else konstruktioner MySQL: Hvad

Læs mere

Midttrafik TRAFIKADMINISTRATION. Brugermanual august-2013 vers. 1.2

Midttrafik TRAFIKADMINISTRATION. Brugermanual august-2013 vers. 1.2 Midttrafik TRAFIKADMINISTRATION 2 34 Brugermanual august-2013 vers. 1.2 1 intro! På de følgende sider vil du finde en lille og hurtig gennemgang af Midttrafik Trafikadministration. Med Midttrafik Trafikadministration

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Object-Relational Mapping

Object-Relational Mapping Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel

Læs mere

GIS. Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet

GIS. Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet GIS Af Anders Bartholdy Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet Baggrundskort fra KMS er en rigtig god resurse der er tilgængelig via ArcGIS. Derfor starter vi med at gennemgå

Læs mere

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. 26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive

Læs mere

Scratch. - introduktionshæfte

Scratch. - introduktionshæfte Scratch - introduktionshæfte Opret bruger 2 Det første, du skal gøre er at oprette dig som bruger, så dine projekter bliver gemt. Gå ind på scratch.mit.edu/ Vælg knappen Meld dig ind i Scratch i den øverste

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Kort om CoinDB (Mønt- og seddelsamling):

Kort om CoinDB (Mønt- og seddelsamling): Kom godt i gang med CoinDB programmet fra PetriSoft (Holder styr på din Mønt- seddel- eller frimærkesamling) Kort om CoinDB (Mønt- og seddelsamling): CoinDB er et Windows program, der anvendes af mønt-

Læs mere

DB undervisning 01-01

DB undervisning 01-01 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...

Læs mere

Views etc. Databaser

Views etc. Databaser Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger

Læs mere

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18 FORCE Inspect Online Manual 1 af 18 Indholdsfortegnelse Indholdsfortegnelse... 2 FORCE Inspect Online Manual... 3 Generelt... 3 Login... 3 Main... 4 Intro sektion... 4 Links sektion... 4 News sektion...

Læs mere

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl: Fejlhåndtering Selv de bedste programmører laver af og til fejl! Dette kommer sikkert som en overraskelse for de fleste, bortset fra de, der har arbejdet med et hvilket som helst større program. Fejl kan

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Vejledning KPK Online Prøverum

Vejledning KPK Online Prøverum Vejledning KPK Online Prøverum INDHOLD Introduktion side 2 Funktionsliste side 2 Få adgang til systemet side 3 Opload dine billeder side 4 Sådan bruges systemet side 5 Gem dine eksempler side 7 Side 1/7

Læs mere

Fronter for elever - Første undervisning

Fronter for elever - Første undervisning Fronter for elever - Første undervisning Fronter for elever - Første undervisning 1 Kom godt i gang 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 0) Nulstille unilogin i UMS - (Elev) 4 1) Logge på Fronter

Læs mere

Loginsystem med PHP4, klasser, sessions og MySQL database

Loginsystem med PHP4, klasser, sessions og MySQL database Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem med PHP4, klasser, sessions og MySQL database Artiklen indeholder et simpelt loginsystem, der benytter en klasse. Den er med vilje simplificeret,

Læs mere

Session-highjack...et halvt skridt mod en modgift

Session-highjack...et halvt skridt mod en modgift Denne guide er oprindeligt udgivet på Eksperten.dk Session-highjack...et halvt skridt mod en modgift Denne artikel forsøger at beskrive hvad PHP session highjacking er og prøver at komme med et bud på

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

PHP kode til hjemmeside menu.

PHP kode til hjemmeside menu. PHP kode til hjemmeside menu. Home Hovedmenu 1 Hovedmenu 2 Hovedmenu 3 Hovedmenu 4 Undermenu 1 Breadcrumb Her vises indholdet af den valgte side Undermenu 2 Undermenu 3 Undermenu 4 Evt. en mulighed for

Læs mere

UPLOAD. Af Database og Website til Skolens Server

UPLOAD. Af Database og Website til Skolens Server UPLOAD Af Database og Website til Skolens Server INDHOLDSFORTEGNELSE Fra projekt til server... 3 Overførsel af SQL Database... 3 Eksekvering af T SQL Script... 8 Modificering af Visual Studio Projekt...

Læs mere