I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
startdato ændres ja. jeg vil have det sådanne at den samme bil ikke kan udlejes i den samme periode. Altså: startdato<slutdato ved reg xxxxxx1 og startdato1<slutdato1 i reg xxxxxx1. Proceduren/triggeren skal altså køre et tjek ved indtastning af startdato og slutdato på det pågældende regnr og fortælle mig, om bilen er til rådighed inden for den angivne periode.
create proc usp_getCarByRegnumber @regnr as varchar(25), @startdate as datetime, @enddate as datetime as begin
if exists(select * from Cars where regnr = @regnr and enddate < @startdate) begin --insert into Cars(regnr, startdate, enddate) values(@regnr, @startdate, @enddate) select @regnr as regnr, @startdate as startdate, @enddate as enddate end else select -1 as regnr end
Skrevet lige i hånden nu uden syntaxcheck! Anyway jeg går udfra at hvis enddatoen er mindre end den nye startdato så er bilen tilgængelig. Jeg har udkommenteret reservationen af bilen hvis den er ledig (den vidste jeg ikke lige om du skulle bruge til noget)
Hvis bilen er ledig får du de samme informationer tilbage som du indtastede og hvis ikke så giver den dig et -1 som regnr *G*
Jeg har indtastet formlen men jeg kan stadigvæk leje en bil 2 gange på samme tidspunkt. Der er ingen fejlmeddelelser under kørslen, og den er oprettet som stored procedure.Skal jeg aktivere den på min table lige som man gør med funktioner eller hvad skal der ril for den virker?
Du kan evt. bruge den sp når du reservere en bil, der fjerner du blot du 2 -- foran insert!
Hvis du ikke vil reservere den i det øjeblik du spørger om den er ledig så ville jeg lige efter at den sp havde returneret det korrekte regnr igen lave en insert ala:
dvs. du starter med at spørge via den sp og hvis den giver et korrekt svar så insert into Cars(regnr, startdate, enddate) values(@regnr, @startdate, @enddate)
Herefter er bilen udlejet :O)
Hvis det nu var helt rigtigt så burde der jo laves transactioner, men hvis det bare er et par biler om dagen så går det nok det hele.
Jeg formoder du godt kan åbne en forbindelse og udføre sql's ?
Nu skal du bare kalde en stored procedure istedet, det gøres lidt anderledes, men er altså ikke så slemt som det lige ser ud til ved første øjekast.
Kan du få et svar tilbage på den sp jeg lavede getCarByRegnumber ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.