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") %>
Annonceindlæg fra gavdi
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") & "'"
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.
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") %>
Jeg tror ikke helt jeg forstår hvad du mener! Vil du ikke prøve at sætte det sammen for mig? Vh Justdoit:)
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.
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?
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.
xxxxx skal ændres til navnet på den nye tabel.
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") %>
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")
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
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") & "')"
Ja det var lige det der var problemet, nu virker det hele.. Tak for hjælpen og god dag:)
Kurser inden for grundlæggende programmering