Avatar billede hanne-rk Nybegynder
02. februar 2005 - 21:54 Der er 4 kommentarer og
1 løsning

replace i database

kan man løbe en kolonne igennem i en database og replace nogle bestemte tegn i denne kollonne?
Hvordan skal det i så fald gøres?

Det skal gøres online, dvs. ved hjælp af en asp fil som blot går ind og søger efter disse tegn, og udskifter med andre.

det der skal udskiftes er :

    VAR = replace("" & VAR,"‘","æ")
    VAR = replace("" & VAR,"›","ø")
    VAR = replace("" & VAR,"†","å")
Avatar billede goose Nybegynder
02. februar 2005 - 22:08 #1
Jeg har lavet et lille script som jeg selv bruger til noget sådant, gem filen som erstat.asp og indsæt din egen databaseforbindelse hvor jeg har skrevet det:


<%
response.buffer = true

** indsæt din databaseforbindelse her **

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Erstat</TITLE>
<%
if request.querystring("action") = "" then
%>
<BR>
<form method="POST" action="erstat.asp?action=gem">
<TABLE WIDTH="95%" BORDER="0" align="center">
    <TR VALIGN="top">
    <TD width="150" align="right" VALIGN="middle">Erstat: </TD>
    <TD><INPUT TYPE="text" class="whitetext" SIZE="40" NAME="erstat" align="right"></TD>
   
</TR>
<TR VALIGN="top">
    <TD width="150" align="right" valign="middle">Med: </TD>
    <TD><INPUT TYPE="text" class="whitetext" SIZE="40" NAME="med" align="right"></TD>
    </TR>

</TR>
<TR VALIGN="top">
    <TD width="150" align="right" valign="middle">Tabelnavn: </TD>
    <TD><INPUT TYPE="text" class="whitetext" SIZE="40" NAME="tabelnavn" align="right"></TD>
    </TR>

</TR>
<TR VALIGN="top">
    <TD width="150" align="right" valign="middle">kolonnenavn: </TD>
    <TD><INPUT TYPE="text" class="whitetext" SIZE="40" NAME="kolonnenavn" align="right"></TD>
    </TR>
<TR VALIGN="top">
    <TD width="150" align="right">&nbsp;</TD>
    <TD><INPUT TYPE="submit" VALUE="Send"></TD>
</TR>
</TABLE>   
</form>
<%
end if

if request.querystring("action") = "gem" then

erstatord = request.form("erstat")
med = request.form("med")

kolonnenavn = request.form("kolonnenavn")
tabelnavn = request.form("tabelnavn")

SQL = "select * from "& tabelnavn &" where id > 0"
set rs = conn.execute(SQL)
do while not rs.eof

org_indhold = "" & rs(""& kolonnenavn &"")
temp_indhold = replace(org_indhold, ""& erstatord &"", ""& med &"")
nyt_indhold = replace(temp_indhold, "'", "''")

SQLstmt = "UPDATE DISTINCTROW "& tabelnavn &" SET "& kolonnenavn &"='" & nyt_indhold & "' WHERE id=" & rs("id")
Conn.Execute (SQLstmt)
Set SQLstmt = nothing
rs.movenext
loop
rs.close
set rs = nothing
conn.Close
Set conn = nothing
response.redirect "erstat.asp?action=done"
end if

if request.querystring("action") = "done" then
%><BR><BR><BR><BR>
<center><B>Ændringerne er gemt</B></center><BR><BR><BR><BR><A HREF="erstat.asp">Erstat yderligere data</A>
<%
end if
%>

</body>
</html>

/Goose
Avatar billede eagleeye Praktikant
02. februar 2005 - 22:12 #2
Hvis du bruger mysql eller SQL Server kan man lave replace direkte i SQL sætningen eks til mysql:

"UPDATE tabelnavn SET kol = REPLACE(kol, 'AA','Å')"

Det virker dog ikke med Access der er man som goose viser nød til at hente, replace og så opdater post for post.
Avatar billede hanne-rk Nybegynder
02. februar 2005 - 22:13 #3
ok - men hvordan skal det laves for at ændre alle 3 tegn, og UDEN først at skulle indtaste dem manuelt.
Filen skal blot kunne kaldes fra et link, hvorefter den automatisk skal løbe hele databasen igennem.
Avatar billede hanne-rk Nybegynder
02. februar 2005 - 22:14 #4
det ER en access database :-(
Avatar billede hanne-rk Nybegynder
03. februar 2005 - 10:30 #5
jeg har oprettet dette spg. i opgaver :
http://www.eksperten.dk/spm/587532
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