Avatar billede justdoit Nybegynder
24. maj 2002 - 21:16 Der er 12 kommentarer og
1 løsning

Hvordan flytter jeg data ?

Hvordan flytter jeg data fra en tabel til en anden, i min daabae - hvorefter dataen i den første tabel slettet??

Her er nogle koder jeg arbejder med, men er jeg på rette vej??

Jeg får en fejl der hedder at: Datatyperne stemmer ikke overens i kriterieudtrykket.



<%
response.buffer = true
%>
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../Cinemax/db/medlem.mdb")

SQLstmt = "SELECT id, titel, spilletid, premiere, genre, genre2, sprog, sprog2, instruktor, skuespiller1, skuespiller2, skuespiller3, skuespiller4, billede, billede2, movienavn, beskrivelse FROM film WHERE id = '" & Request.QueryString("id") & "'"

SQLstmt = "UPDATE DISTINCTROW papirkurv SET titel = '" & (titel) & "', spilletid = '" & (spilletid) & "', premiere = '" & (premiere) & "', genre = '" & (genre) & "', genre2 = '" & (genre2) & "', sprog = '" & (sprog) & "', sprog2 = '" & (sprog2) & "', instruktor = '" & (instruktor) & "', skuespiller1 = '" & (skuespiller1) & "', skuespiller2 = '" & (skuespiller2) & "', skuespiller3 = '" & (skuespiller3) & "', skuespiller4 = '" & (skuespiller4) & "', billede = '" & (billede) & "', billede2 = '" & (billede2) & "', movienavn = '" & (movienavn) & "', beskrivelse = '" & (beskrivelse) & "' WHERE id = '" & Request.QueryString("id") & "'"

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing

response.redirect ("admin_slet.asp")
%>
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:19 #1
du skal skre din første SQLstmt og ligge ind i et recordset:

Set rs = Conn.Execute (SQLstmt)

'Den nye skal du så bruge sit recortdsetsdata:
SQLstmt = "UPDATE DISTINCTROW papirkurv SET titel = '" & (titel) & "', spilletid = '" & rs(spilletid) & "', premiere = '" & rs(premiere) & "', genre = '" & rs(genre) & "', genre2 = '" & rs(genre2) & "', sprog = '" & rs(sprog) & "', sprog2 = '" & rs(sprog2) & "', instruktor = '" & rs(instruktor) & "', skuespiller1 = '" & (skuespiller1) & "', skuespiller2 = '" & rs(skuespiller2) & "', skuespiller3 = '" & rs(skuespiller3) & "', skuespiller4 = '" & rs(skuespiller4) & "', billede = '" & rs(billede) & "', billede2 = '" & rs(billede2) & "', movienavn = '" & rs(movienavn) & "', beskrivelse = '" & rs(beskrivelse) & "' WHERE id = '" & Request.QueryString("id") & "'"
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:21 #2
For at slette den gamle record skal du lave en SQL sætningen mere efet du har lagt data ind i den nye tabel:

WHERE id = '" & Request.QueryString("id") & "'"

Conn.Execute (SQLstmt)

SQLstmt = "DELETE FROM film WHERE id = '" & Request.QueryString("id") & "'"
Conn.Execute (SQLstmt)

Men vendt med at putte slette SQL-sætningen ind inden du ved med sikkerhed den kan kopier fra den gamle til den nye tabel.
Avatar billede justdoit Nybegynder
24. maj 2002 - 21:34 #3
Ok, nu har jeg ændret det lidt, men er det helt hen i vejret??

<%
response.buffer = true
%>
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../Cinemax/db/medlem.mdb")

SQLstmt = "SELECT id, titel, spilletid, premiere, genre, genre2, sprog, sprog2, instruktor, skuespiller1, skuespiller2, skuespiller3, skuespiller4, billede, billede2, movienavn, beskrivelse FROM film WHERE id = '" & Request.QueryString("id") & "'"

Set rs = Conn.Execute (SQLstmt)

'Den nye skal du så bruge sit recortdsetsdata:
SQLstmt = "UPDATE DISTINCTROW papirkurv SET titel = '" & rs(titel) & "', spilletid = '" & rs(spilletid) & "', premiere = '" & rs(premiere) & "', genre = '" & rs(genre) & "', genre2 = '" & rs(genre2) & "', sprog = '" & rs(sprog) & "', sprog2 = '" & rs(sprog2) & "', instruktor = '" & rs(instruktor) & "', skuespiller1 = '" & (skuespiller1) & "', skuespiller2 = '" & rs(skuespiller2) & "', skuespiller3 = '" & rs(skuespiller3) & "', skuespiller4 = '" & rs(skuespiller4) & "', billede = '" & rs(billede) & "', billede2 = '" & rs(billede2) & "', movienavn = '" & rs(movienavn) & "', beskrivelse = '" & rs(beskrivelse) & "' WHERE id = '" & Request.QueryString("id") & "'"


Conn.Execute (SQLstmt)

SQLstmt = "DELETE FROM film WHERE id = '" & Request.QueryString("id") & "'"
Conn.Execute (SQLstmt)


conn.Close
Set conn = nothing
Set SQLstmt = nothing

response.redirect ("admin_slet.asp")
%>
Avatar billede justdoit Nybegynder
24. maj 2002 - 21:43 #4
Jeg tror ikke helt jeg forstår hvad du mener! Vil du ikke prøve at sætte det sammen for mig?

Vh

Justdoit:)
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:47 #5
Det ser fint ud. Jeg ahr lige et par småting.

"UPDATE DISTINCTROW papirkurv

UPDATE skal være: "UPDATE tabelnavn SET kolonne=xxxx WHERE ID=cc"
UPDATE opdater en række i din tabel som findes i forvejen. Hvis du skal indsætte en ny række med dato skal du benytte "INSERT INTO tabel (kol) VALUE (xxxx)"

Hvis ID er et tal skal du ikke hvade ' omkring.
Avatar billede justdoit Nybegynder
24. maj 2002 - 21:58 #6
Ok, men jeg skal jo sådan set ikke opdatere en tabel, da den ikke eksistere i forvejen. Derfor skal jeg vel ind og lægge mine data ind i en tabel, og derefter slette dem?

Vil du ikke pøve at sætte det ind, da jeg ikke tror at jeg er helt med?
Avatar billede eagleeye Praktikant
24. maj 2002 - 22:28 #7
Jeps jeg kan prøve at hjælpe..

Du skal udskifte UPDATE .. men denne:

SQLstmt = "INSERT INTO xxxxx (titel, spilletid, premiere, genre, genre2, "
SQLstmt = SQLstmt & "sprog, sprog2, instruktor, skuespiller1, skuespiller2, "
SQLstmt = SQLstmt & "skuespiller3, skuespiller4, billede, billede2, "
SQLstmt = SQLstmt & "movienavn, beskrivelse) VALUES ("
SQLstmt = SQLstmt & "'" & rs(titel) & "',"
SQLstmt = SQLstmt & "'" & rs(spilletid) & "',"
SQLstmt = SQLstmt & "'" & rs(premiere) & "',"
SQLstmt = SQLstmt & "'" & rs(genre) & "',"
SQLstmt = SQLstmt & "'" & rs(genre2) & "',"
SQLstmt = SQLstmt & "'" & rs(sprog) & "',"
SQLstmt = SQLstmt & "'" & rs(sprog2) & "',"
SQLstmt = SQLstmt & "'" & rs(instruktor) & "',"
SQLstmt = SQLstmt & "'" & (skuespiller1) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller2) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller3) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller4) & "',"
SQLstmt = SQLstmt & "'" & rs(billede) & "',"
SQLstmt = SQLstmt & "'" & rs(billede2) & "',"
SQLstmt = SQLstmt & "'" & rs(movienavn) & "',"
SQLstmt = SQLstmt & "'" & rs(beskrivelse) & "')"


Det forud sætter at alle dine kolonne er defineret tekst/notat type.
Avatar billede eagleeye Praktikant
24. maj 2002 - 22:38 #8
xxxxx  skal ændres til navnet på den nye tabel.
Avatar billede justdoit Nybegynder
25. maj 2002 - 10:06 #9
Hej, så har jeg udskiftet min UPDATA sætning og ja, minr kolonner er defineret tekst/notat.

Men jeg får stadig fejlen at datatyperne stemmer ikke overens i kriterieudtrykket.

/cinemax/flyt.asp, linje 11


Kan du se flere fejl??


<%
response.buffer = true
%>
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../Cinemax/db/medlem.mdb")

SQLstmt = "SELECT id, titel, spilletid, premiere, genre, genre2, sprog, sprog2, instruktor, skuespiller1, skuespiller2, skuespiller3, skuespiller4, billede, billede2, movienavn, beskrivelse FROM film WHERE id = '" & Request.QueryString("id") & "'"

Set rs = Conn.Execute (SQLstmt)

SQLstmt = "INSERT INTO papirkurv (titel, spilletid, premiere, genre, genre2, "
SQLstmt = SQLstmt & "sprog, sprog2, instruktor, skuespiller1, skuespiller2, "
SQLstmt = SQLstmt & "skuespiller3, skuespiller4, billede, billede2, "
SQLstmt = SQLstmt & "movienavn, beskrivelse) VALUES ("
SQLstmt = SQLstmt & "'" & rs(titel) & "',"
SQLstmt = SQLstmt & "'" & rs(spilletid) & "',"
SQLstmt = SQLstmt & "'" & rs(premiere) & "',"
SQLstmt = SQLstmt & "'" & rs(genre) & "',"
SQLstmt = SQLstmt & "'" & rs(genre2) & "',"
SQLstmt = SQLstmt & "'" & rs(sprog) & "',"
SQLstmt = SQLstmt & "'" & rs(sprog2) & "',"
SQLstmt = SQLstmt & "'" & rs(instruktor) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller1) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller2) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller3) & "',"
SQLstmt = SQLstmt & "'" & rs(skuespiller4) & "',"
SQLstmt = SQLstmt & "'" & rs(billede) & "',"
SQLstmt = SQLstmt & "'" & rs(billede2) & "',"
SQLstmt = SQLstmt & "'" & rs(movienavn) & "',"
SQLstmt = SQLstmt & "'" & rs(beskrivelse) & "')"


Conn.Execute (SQLstmt)

SQLstmt = "DELETE FROM film WHERE id = '" & Request.QueryString("id") & "'"
Conn.Execute (SQLstmt)


conn.Close
Set conn = nothing
Set SQLstmt = nothing

response.redirect ("admin_slet.asp")
%>
Avatar billede eagleeye Praktikant
25. maj 2002 - 10:28 #10
Er ID defineret som tekst eller er det autonummer?
WHERE id = '" & Request.QueryString("id") & "'"

Hvis det er tal eller Autonummer skal det se sådan ud:

WHERE id = " & Request.QueryString("id")
Avatar billede justdoit Nybegynder
25. maj 2002 - 10:41 #11
Nu har jeg rettet det men endnu en ny fejl er opstået??

ADO kunne ikke finde objektet i den samling, der svarer til den henvisning til navn eller ordenstal, som programmet anmodede om.

/Cinemax/flyt.asp, linje 17
Avatar billede eagleeye Praktikant
25. maj 2002 - 10:53 #12
doh min fejl alle rs(title) skal se sådan ud rs("title")

SQLstmt = SQLstmt & "'" & rs("titel") & "',"
SQLstmt = SQLstmt & "'" & rs("spilletid") & "',"
SQLstmt = SQLstmt & "'" & rs("premiere") & "',"
SQLstmt = SQLstmt & "'" & rs("genre") & "',"
SQLstmt = SQLstmt & "'" & rs("genre2") & "',"
SQLstmt = SQLstmt & "'" & rs("sprog") & "',"
SQLstmt = SQLstmt & "'" & rs("sprog2") & "',"
SQLstmt = SQLstmt & "'" & rs("instruktor") & "',"
SQLstmt = SQLstmt & "'" & rs("skuespiller1") & "',"
SQLstmt = SQLstmt & "'" & rs("skuespiller2") & "',"
SQLstmt = SQLstmt & "'" & rs("skuespiller3") & "',"
SQLstmt = SQLstmt & "'" & rs("skuespiller4") & "',"
SQLstmt = SQLstmt & "'" & rs("billede") & "',"
SQLstmt = SQLstmt & "'" & rs("billede2") & "',"
SQLstmt = SQLstmt & "'" & rs("movienavn") & "',"
SQLstmt = SQLstmt & "'" & rs("beskrivelse") & "')"
Avatar billede justdoit Nybegynder
25. maj 2002 - 11:26 #13
Ja det var lige det der var problemet, nu virker det hele..

Tak for hjælpen og god dag:)
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

IT-JOB