Avatar billede jacand Nybegynder
15. juli 2004 - 20:23 Der er 11 kommentarer og
3 løsninger

fra asp til sql

Kan man lave nedenstående kode om så den kan køre via et sql script?

Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM sider"
rs.Open SQL, strDSN, 1, 3

Do While Not rs.EOF
response.write rs("id") & "<br>"
        Set rs2 = Server.CreateObject("ADODB.RecordSet")
        SQL = "SELECT * FROM backupsider where (id=0)"
        rs2.Open SQL, strDSN, 1, 3
        rs2.addnew
        rs2("siderid") = rs("id")
        rs2("htmlkode") = rs("htmlkode")
        rs2("rettet") = rs("rettet")
        rs2.update
        rs2.close
        set rs2 = nothing
    rs.movenext
loop

rs.close
set rs = nothing
Avatar billede jacand Nybegynder
15. juli 2004 - 20:24 #1
Ups jeg glemte lige:
rs2("backupdato") = now()
Avatar billede keysersoze Ekspert
15. juli 2004 - 20:32 #2
SQL = "UPDATE backupsider SET htmlkode = '" & rs("htmlkode") & "', rettet = '" & rs("rettet") & "' WHERE id = " & rs("id")
Avatar billede jacand Nybegynder
15. juli 2004 - 21:02 #3
Det den gør er at tage alle fra sider og sætte dem ind i backupsider, den skal ikke opdatere men bare sætte ind i backupsider
Avatar billede Slettet bruger
15. juli 2004 - 21:10 #4
SQL = "INSERT INTO backupsider (htmlkode,rettet,sideid) VALUES ('" & rs("htmlkode")
& "','" & rs("rettet") & "'," & rs("id") & ")"
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 08:31 #5
personlig foretrækker jeg din gamle løsning, da de nævnte SQL statements er sårbare for SQL injection!  og at SQL'en iøvrigt er sårbare hvor rs("htmlkode") indeholder ' tegn!
Avatar billede keysersoze Ekspert
16. juli 2004 - 10:03 #6
sådan er man jo så forskellig - jeg foretrækker ren SQL og mener ikke det er nogen større problem at tage højde for '

;)
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 10:11 #7
helt enig... smag og behag ER forskellig!  :-)

jeg syntes dog specielt ved dato felter, at det er en fordel at benytte database-objekter fremfor SQL, da det varierer utrolig meget hvordan en dato skal formateres i SQL for at blive forstået rigtigt for den givne opsætning/database/datotype.
Avatar billede jacand Nybegynder
16. juli 2004 - 12:36 #8
Det jeg mente var at det skulle være et SQL script der køre direkte på SQL serveren, og ikke i en asp kode :-)
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 12:51 #9
sorry, misforstod åbenbart.

prøv med:

INSERT INTO backupsider (siderid,htmlkode,rettet)
FROM SELECT id,htmlkode,rettet FROM sider;
Avatar billede jacand Nybegynder
16. juli 2004 - 13:10 #10
Gir:

Server: Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'FROM'.
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 13:12 #11
INSERT INTO backupsider (siderid,htmlkode,rettet)
SELECT FROM id,htmlkode,rettet FROM sider;
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 13:13 #12
og igen  (3. gang er lykkens gang, ik?)

INSERT INTO backupsider (siderid,htmlkode,rettet)
SELECT id,htmlkode,rettet FROM sider;
Avatar billede jacand Nybegynder
16. juli 2004 - 13:22 #13
Kan man lave denne når den skal køre fra SQL serveren¨?
rs2("backupdato") = now()
Avatar billede fsconsult.dk Nybegynder
16. juli 2004 - 13:51 #14
ja med getdate()  (er 99% sikker på at det er det den hedder i T-SQL)

INSERT INTO backupsider (siderid,htmlkode,rettet,backupdato)
SELECT id,htmlkode,rettet,getdate() FROM sider;
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