Har en tabell där jag tyvärr för ca 170 filmer sedan gjorde ett dumt misstag (visste inte bättre)
Tabellen heter recensioner och där finns tyvärr all info om recenserade filmer samlade. Nu vill jag utveckla skådespelardelen med lite nya funktioner och då behöver jag göra en ny tabell för dom.
Problemet: I dag ligger skådespelarna kommaseparerade i ett PM-fält (Actors)ex.Christian Bale, Willem Dafoe, Jared Leto,
Finns det något enkelt sätt att exportera dessa till en annan tabell (Skadisar) där fnamn och efternamn blir liggande i var sin cell?
Hur ligger namnet? Är det alltid ett förnamn och ett efternamn eller
kan det förekomma
"Rhonda jo Petty,Madonna, John C Watson" ?
Jag skrev ihop en bit VB-script. Där tolkas det så att sista ordet i actors blir efternamn allt annat blir förnamn. Om det bara finns ett ord så
blir det efternamn.
Koden gör också en kontroll så att man inte lagrar duplikat. Det är ju helt otestat, men det kanske är något
du kan utgå ifrån i alla fall.
option explicit
dim sql,rs,actors,connect,firstName,lastName,rq,lastSpace,i
set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select actors from movies"
set rs = connect.execute(sql)
while not rs.eof
actors = split(rs("actors"),",")
for i = 0 to ubound(actors)
lastSpace = instrRev(actors(i)," ")
if lastSpace = 0 then
lastName = actors(i)
firstName = ""
else
lastName = mid(actors(i),lastSpace+1)
firstName = trim(mid(actors(i),1,lastSpace))
end if
'
' se om den finns innan
'
set rq = conenct.execute("select 1 from actors where lastName = '" &_
replace(lastName,"'","''") & "' and firstName = '" & _
replace(firstName,"'","''") & "'")
if rq.eof then
connect.execute "insert into actors (lastName,firstName) values('" & _
replace(lastName,"'","''") & "','" & _
replace(firstName,"'","''") & "')",,128
end if
rq.close
next
rs.movenext
wend
rs.close
connect.close
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Bale'.'Christian')'.
/moviemix/html/testact.asp, line 26
rad 26= connect.execute "insert into actors (lastName,firstName) values(" & _
if rq.eof then
connect.execute "insert into actors (lastName,firstName) values(" & _
replace(lastName,"'","''") & "','" & _
replace(firstName,"'","''") & "')",,128
end if
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Bale','Christian')'.
/moviemix/html/testact.asp, line 26
Stirrar mig blind på koden och inser hur mycket man måste lära
if rq.eof then
connect.execute "insert into actors (lastName,firstName) values('" & _
replace(lastName,"'","''") & "','" & _
replace(firstName,"'","''") & "')",,128
end if
lade till en apostrof precis efter values, det blir lätt så när man inte har någon direkt mäjlighet att testa.