Avatar billede tbm_iceman Nybegynder
19. august 2002 - 15:23 Der er 16 kommentarer og
1 løsning

DTS tror jeg nok...

Hejsa alle....

Jeg har et tilmeldings system hvor man kun må være tilmeldt i 5 dage af gangen.
Så når de tilmelder sig bliver de smidt ind i en tabel.
Hvordan får jeg SQL-serveren til at resette den plads/reservering efter 5 dage???
Avatar billede slash Nybegynder
19. august 2002 - 15:25 #1
fx. med en stored procedure og sql server agent (scheduleren i sql -server)
Avatar billede slash Nybegynder
19. august 2002 - 15:26 #2
du har vel en tilmeldtdato, så er det jo bare at teste på om tilmeld dato > 5 dage, hvis ja, delete.....
Avatar billede ocp Nybegynder
19. august 2002 - 15:26 #3
Du kan jo oprette et job der kører en delete-sætning på alle entries der er over 5 dage gamle. Så kan du jo sætte det til at køre f.eks. hver time?
Avatar billede pierrehusted Nybegynder
19. august 2002 - 15:29 #4
Der er flere forskellige muligheder.

SQL sætningen skal vel være noget i den her stil :


Delete from tabelnavn where datofelt <= Current_timestamp -5


Men du kan få kørt sætningen på flere forskellige måder :
- DTS pakke
- I Global.asa
- I en bestemt side


Har du adgang til DTS pakker, og kører SQL Server Agenten på din server, så laver du ganske enkelt en DTS pakken med en SQL connection og et enkelt step: den ovenstående SQL sætning.
Så sætter du Agenten til f.eks. at køre pakken en gang i timen (eller noget i den stil).


Global.asa kan du læse om her http://activedeveloper.dk/aspdigital/2002080801.asp


Du kan også lave en side, som du selv går ind på en gang om dagen. Hvis du så ikke husker det en enkelt dag vil nogle af dem så få 6 dage.
Avatar billede tbm_iceman Nybegynder
19. august 2002 - 15:47 #5
Jeg vil have det til at køre automatisk, lidt lamt at gøre det ved pageload/global...

Der for jeg skal bruge hjælp til det DTS sjov der....
Kører en MS SQL 7.0 server
Avatar billede pierrehusted Nybegynder
19. august 2002 - 15:49 #6
Så laver du bare en DTS pakke, sætter SQL sætningen ind i den, og sætter den til at køre en gang i timen.
Avatar billede slash Nybegynder
19. august 2002 - 15:51 #7
Du kan finde SQL-server Agenten under "Management" når du kører 7.0!
Avatar billede tbm_iceman Nybegynder
19. august 2002 - 15:52 #8
ehrm lidt ny i det der me Agent og DTS, kan ikke lave en lille step by step guide?

Har ikke meget tid til at rode med det lige nu nemlig.... :/
Avatar billede slash Nybegynder
19. august 2002 - 15:54 #9
læs i SQL-server books online - der står alt hvad du har behov for at vide!

Det letteste ville være at lave en SP!
Avatar billede pierrehusted Nybegynder
19. august 2002 - 15:56 #10
Hvorfor vil det letteste være at lave en stored procedure ???

Om du skal køre en SQL sætning eller en SP fra en DTS pakke er da det samme. Og vil du senere rette i selve sætningen er det da meget mere besværligt i en SP.
Avatar billede tbm_iceman Nybegynder
19. august 2002 - 15:59 #11
hmm, ved ikke hvad der er bedst eller ej, bare fix en løsning jeg kan finde ud af så bliver jeg glad og i får point.. :D og så er vi alle glade.. weeeeeeeee
Avatar billede slash Nybegynder
19. august 2002 - 16:01 #12
pierre --> Smag og behag! Nogle vælger den ene løsning, andre vælger en anden løsning! Nogle vælger at sætte deres personlige præg på det man laver, andre ikke!
Avatar billede pierrehusted Nybegynder
19. august 2002 - 16:08 #13
Man kan da godt sætte personligt præg uden at lave Stored Procedures !!

Da Stored Procedures er en smule mere besværlige at rette i bruger jeg dem mest de steder hvor deres hurtigere performance gør forskel.

Men det her er vel en slags filosofisk diskution, som ikke hører til i den her tråd.

tcm_iceman : kig i SQL-Server Books online. Der står præcis hvordan du laver en DTS pakke.
Avatar billede tmceu Praktikant
19. august 2002 - 16:34 #14
Hvis du udfører flg. statements, får du et job der kører hver dag kl. 14:

USE msdb
EXEC sp_add_job @job_name = 'Slet Brugere'

EXEC sp_add_jobstep @job_name = 'Slet Brugere',
  @step_name = 'Slet Brugere (SQL Statement)',
  @subsystem = 'TSQL',
  @command = 'DELETE FROM Brugere WHERE Oprettet < Current_Timestamp - 5'

EXEC sp_add_jobschedule @job_name = 'Slet Brugere',
  @name = 'Daglig',
  @freq_type = 4,
  @freq_interval = 1,
  @active_start_time = 140000
Avatar billede tbm_iceman Nybegynder
20. august 2002 - 15:59 #15
Vil gerne have en STEP by STEP til det skrev jeg, jeg har meget lidt tid i de her dage, så ville virkelig hjælpe mig meget.

tmceu: kunne forestille mig at et var noget ala det du skrev men ved bare ikke hvad jeg skal med det. :(

//IceMan
Avatar billede tmceu Praktikant
21. august 2002 - 02:17 #16
Det var egentlig ret simpelt. Kopier- og kør det i Query Analyzer.
Avatar billede tbm_iceman Nybegynder
24. august 2002 - 17:13 #17
haha, ja det må man sige var let.
men har nu lavet en anden løsning.

Du får selvfølgelig dine point. :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester