Avatar billede want2learn Nybegynder
03. maj 2004 - 20:25 Der er 16 kommentarer og
2 løsninger

At nulstille en database

Hej

er det muligt at slette alle recorder i en database og så nulstille den sådan så den starter fra 1 igen med den første record. !?

Skal nemlig kunne slette alle recorder i en database på en gang og så derefter kunne restarte/nulstille den så når jeg opretter en ny record så starter denne fra 1 og ikke evt 1677 hvis sidste record var 1676.
Avatar billede goose Nybegynder
03. maj 2004 - 20:29 #1
Hvis det er en Access database, så slet alle records og så vælg Funktioner > Databasefunktioner > Komprimér og reparer database.

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 20:32 #2
GOOSE

Det er en Access Database men da jeg har lavet dette spm i ASP så ønsker jeg en løsning i dette sprog. hvis der findes en !!
Avatar billede goose Nybegynder
03. maj 2004 - 21:03 #3
Okay, hvis du kan finde ud af at tømme alle data fra databasen med:

"delete * from [TABEL] where id > 0"

- og så bruge den her til at komprimerer den med:
http://www.dotnetindex.com/articles/59

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 21:07 #4
okay ser meget OK ud.

hvis jeg nu giver dig mine database oplysninger vil du så evt lave et test script til den !??

test.mdb
test
ID = Auto/Key
TITLE = Text
TEXT = Text
Avatar billede goose Nybegynder
03. maj 2004 - 21:35 #5
Prøv nedenstående, dog skal du lige rette stien til databasen til den der gælder for dit webhotel (DBQ=d:\web\domæne.dk\www\log\database\test.mdb)

Jeg har lige testet på min egen server og det virker ok.


<%
response.buffer = true
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\web\domæne.dk\www\log\database\test.mdb"

' ***********************************************************
' SLET ALT I TABELLEN
' ***********************************************************

SQL = "delete * from test where id >0"
conn.execute(SQL)
conn.close
set conn = nothing

' ***********************************************************
' KOMPRIMER DATABASEN
' ***********************************************************


  oldFile = "d:\web\domæne.dk\www\log\database\test.mdb"
  newFile = "d:\web\domæne.dk\www\log\database\temp_backup.mdb"

  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& oldFile
  strConnBak = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & newFile
   
  Set objJRO = Server.CreateObject("JRO.JetEngine")
  objJRO.CompactDatabase strConn, strConnBak
  Set objJRO = Nothing

  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  If objFSO.FileExists(newFile) And objFSO.FileExists(oldFile) Then
  objFSO.DeleteFile(oldFile)
  objFSO.MoveFile newFile, oldFile
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation udført.</font>"
  Else
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation mislykkedes !!!</font>"
  End If

  Set objFSO = Nothing
  %>

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 21:40 #6
jeg hader drev bogstaver ;) kan jeg ikke bare lave det til en mappe så jeg evt bare har database\test.mdb !?? eller !?
Avatar billede goose Nybegynder
03. maj 2004 - 22:07 #7
<%
response.buffer = true

' ***********************************************************
' SLET ALT I TABELLEN
' ***********************************************************

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/test.mdb")
Set con = server.createobject("adodb.connection")
con.open strCon
SQL = "delete * from test where id >0"
con.execute SQL
con.close
set con = nothing


' ***********************************************************
' KOMPRIMER DATABASEN
' ***********************************************************

oldFile = Server.MapPath("database/test.mdb")
newFile = Server.MapPath("database/backup_test.mdb")

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& oldFile
strConnBak = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & newFile

  Set objJRO = Server.CreateObject("JRO.JetEngine")
  objJRO.CompactDatabase strConn, strConnBak
  Set objJRO = Nothing

  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  If objFSO.FileExists(newFile) And objFSO.FileExists(oldFile) Then
  objFSO.DeleteFile(oldFile)
  objFSO.MoveFile newFile, oldFile
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation udført.</font>"
  Else
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation mislykkedes !!!</font>"
  End If

  Set objFSO = Nothing
  %>

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 22:31 #8
Okay den virker jo kanon MEN den loader halvt og så står den ellers bare der og loader og der sker intet men den har oprettet en TOM backup og tømt den oprindelige men har ikke komprimeret den så den er ligeså stor/LILLE som backuppen.

så jeg tænkte på om man ikke kunne gøre så den backup der bliver lavet overskriver den oprindelige og om den så vilel loade færdig og sige at komprimeringen er udført eller !??
Avatar billede goose Nybegynder
03. maj 2004 - 22:39 #9
Ved ikke hvorfor det ikke virker hos dig, jeg har testet på min server og der virker det fint ?
Du tror ikke det er din server der hænger ?!?

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 22:41 #10
okay kan det være fordi jeg køre det på en IIS !?
Avatar billede goose Nybegynder
03. maj 2004 - 22:46 #11
Ja det kan det godt, du skal ihvertfald bruge MDAC 2.1 for at det virker har jeg læst, det er først fra den version at CompactDatabase virker.

Har du ikke mulighed for at teste på et webhotel ?!?

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 22:47 #12
hvordan kan jeg updaterer til den nyeste MDAC !?

jo men jeg har uploadet det men skal vente på at de laver skriverettigheder til min mappe !! :)
Avatar billede goose Nybegynder
03. maj 2004 - 22:55 #13
Aner det ikke.

Har du virkelig ikke en mappe på din server hvor du har skriverettigheder ?

/Goose
Avatar billede want2learn Nybegynder
03. maj 2004 - 23:02 #14
nej for jeg har ikke uploadet mit site endnu da det ikek er færdigt

men fandt og installerede MDAC 2.8 så ser lige om det virker på min IIS
Avatar billede want2learn Nybegynder
04. maj 2004 - 00:56 #15
når så fik jeg skrive rettigheder og det virker jo kanon hurtigt under 1 sek. at gøre det den skal og så sletter den endda 120 recorder osv...

Mange tak du :D
Avatar billede want2learn Nybegynder
04. maj 2004 - 01:07 #16
LIGE EN TING

hvis jeg har en database på 4.5 Mb og jeg har slettet en del i den så jeg ved den kan blive mindre ved at komprimerer den så skal jeg da kun/bare bruge dette stykke af din code ikke !??

<%
' ***********************************************************
' KOMPRIMER DATABASEN
' ***********************************************************

oldFile = Server.MapPath("database/test.mdb")
newFile = Server.MapPath("database/backup_test.mdb")

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& oldFile
strConnBak = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & newFile

  Set objJRO = Server.CreateObject("JRO.JetEngine")
  objJRO.CompactDatabase strConn, strConnBak
  Set objJRO = Nothing

  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  If objFSO.FileExists(newFile) And objFSO.FileExists(oldFile) Then
  objFSO.DeleteFile(oldFile)
  objFSO.MoveFile newFile, oldFile
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation udført.</font>"
  Else
  Response.Write "<font size=""+2"" color=""crimson"">Komprimering og reparation mislykkedes !!!</font>"
  End If

  Set objFSO = Nothing
  %>

!??
Avatar billede goose Nybegynder
04. maj 2004 - 07:51 #17
Tak for point og ja, så skal du bare bruge komprimeringsdelen.

/Goose
Avatar billede want2learn Nybegynder
04. maj 2004 - 11:07 #18
manga tak du.
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
Kurser inden for grundlæggende programmering

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