Avatar billede stefware Nybegynder
01. december 2002 - 00:06 Der er 15 kommentarer og
1 løsning

Sammenligne 2 databaser

Hej

Jeg sidder og fusker med en database over firmaets maskiner og licenser. I den ene database har jeg en oversigt over maskinen, hvilket HW der er og hvilken serie numre der er brugt af de forskellige software produkter, eks illustrator.
I en anden DB har jeg en liste over alle serie numrene for de enkelte programmer, eks illustrator.
Kan man trække bruger og serie nummer ud fra den første database og serie numrene fra den anden database og sammenligne dem så, man kan se hvilke numre der er brugt og af hvem, og hvilke der er fri?

Stef (PS. som ikke er nogen asp haj, så det skal skæres ud i pap, gerne med eksempel)
Avatar billede kovalt Nybegynder
01. december 2002 - 11:35 #1
Jeg er ikke helt med på hvad det er du gerne vil ha en liste ud over...

For mig at se vil du kun ha en ting ud fra aden DB hvilket er serienumrerne, hvilke som jeg læser det allerede eksisterer i første DB
Avatar billede stefware Nybegynder
01. december 2002 - 12:28 #2
Jeg prøver lige igen, det er også lidt rodet.

DB1 inde holder x antal computere med software på. I denne DB står serie nummeret på det forskellige software der er installeret på maskinerne.

DB2 inde holder samtlige serie numre på programmer.

Dvs. der er flere serie numre i DB2 end der er i DB1 fordi det ikke er alle programmer der er indstalleret.

Det som jeg ogdt kunne tænke mig er at man tager Serie numrene fra DB1 (for eks. photoshop eller illustrator) og sammenligner med serienumrene fra DB2 (naturligvis samme program) så man får en liste over hvilke numre der er brugt og hvilke der ikke er brugt. Så når man skal installere en ny maskine er det nemt hurtigt at se hvilke numre der er ledige.
Avatar billede websam Nybegynder
01. december 2002 - 14:53 #3
Je vil mene du skal lave forbindelsen til begge databaser som det første. Derefter trækker du alle serienumre fra db1 med en sql sætning og laver en loop hvori du laver en ny sql sætning der trækker serienumrene ud fra db2. På den måde kan du nu samligne numrenop mod hinanden og kun trække dem ud der ikke allerede er i brug.

/WebSam
Avatar billede websam Nybegynder
01. december 2002 - 15:00 #4
Du kan jo oxo nøjes med at bruge en db og så tilføje et sandt/falskk felt og hvis feltet er vinket af skal serienummeret ikke trækkes ud da det er i brug, bare lige en anden ide ;o)

/WebSam
Avatar billede kovalt Nybegynder
01. december 2002 - 19:40 #5
Du kan gøre det som følger:

strSQL = "SELECT serienummer FROM db1 ORDER BY serienummer ASC"
set rs = Conn.Execute(strSQL)

strSQL = "SELECT serienummer FROM db2 ORDER BY serienummer ASC"
set rs2 = Conn.Execute(strSQL)


while not rs2.EOF OR rs2.BOF

  if rs("serienummer") = rs2("serienummer") then

    rs.MoveNext
    rs2.MoveNext
    Wend

  else

  response.write rs("serienummer")
  rs.Movenext
  rs2.MoveNext
  Wend

  end if
Avatar billede kovalt Nybegynder
01. december 2002 - 19:40 #6
sorry sådan her:

strSQL = "SELECT serienummer FROM db1 ORDER BY serienummer ASC"
set rs = Conn.Execute(strSQL)

strSQL = "SELECT serienummer FROM db2 ORDER BY serienummer ASC"
set rs2 = Conn.Execute(strSQL)


while not rs2.EOF OR rs2.BOF

  if rs("serienummer") = rs2("serienummer") then

    rs2.MoveNext
    Wend

  else

  response.write rs("serienummer")
  rs.Movenext
  rs2.MoveNext
  Wend

  end if
Avatar billede stefware Nybegynder
06. december 2002 - 18:51 #7
Jeg har ikke glemt dit svar, jeg har bare ikke lige haft tid til at rode med det.
Avatar billede stefware Nybegynder
06. december 2002 - 19:15 #8
Jeg er nok nød til at have lidt hjælp til at få det rigtigt placeret, jeg kan nogenlunde gennemskue hvordan det er skruet sammen, men lige at få det rigtigt placeret, er lidt værre. Har jeg ret i at:

strSQL = "SELECT serienummer FROM db1 ORDER BY serienummer ASC"
set rs = Conn.Execute(strSQL)

strSQL = "SELECT serienummer FROM db2 ORDER BY serienummer ASC"
set rs2 = Conn.Execute(strSQL)

Placeres i head'eren mellem <%%>
Og :
while not rs2.EOF OR rs2.BOF

  if rs("serienummer") = rs2("serienummer") then

    rs2.MoveNext
    Wend

  else

  response.write rs("serienummer")
  rs.Movenext
  rs2.MoveNext
  Wend

  end if
i bodyen, men hvor skal det præcist tag's med <%%>
Avatar billede kovalt Nybegynder
06. december 2002 - 19:19 #9
Bare placer det hele i body......

Det eneste der betyder noget er at dine SQL-sætninger kommer inden løkken. Løkken plaveres der hvor du skal skrive ud, idet det netop er løkken der udskriver
Avatar billede stefware Nybegynder
06. december 2002 - 19:27 #10
jeg får en fejl i det er er linie 21 som min browser siger er den med Wend?
Avatar billede kovalt Nybegynder
06. december 2002 - 19:34 #11
hvad er fejlen?
Avatar billede stefware Nybegynder
06. december 2002 - 19:37 #12
Microsoft VBScript compilation error '800a0400'

Expected statement

/sammen.asp, line 21

Wend
^
Avatar billede kovalt Nybegynder
06. december 2002 - 19:46 #13
hmmm det lyder underligt
Avatar billede stefware Nybegynder
06. december 2002 - 19:48 #14
Jeg prøver lige at omdøbe mine db'er og tabeller, så de passer til scriptet!
Avatar billede kovalt Nybegynder
06. december 2002 - 19:57 #15
Det bør virke i hvert fald
Avatar billede stefware Nybegynder
06. december 2002 - 20:26 #16
Det vil ikke, så jeg tror jeg vil prøve Websam's forslag med en sand/falsk istedet, jeg skal vist lige have det hele vendt igen, så jeg kan lave det smartest og mest overskueligt. Men du får point'ene for det ihærdige forsøg!
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