Avatar billede fireworld Nybegynder
13. september 2001 - 20:29 Der er 21 kommentarer og
3 løsninger

replace???

Hvordan laver man i en SQL så den replacer noget før den skriver det ud?


f.eks jeg har et row og nå den løber det igennem skal den bytte A ud med E hvordan det?

har kigget lidt på

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ra-rz_76lh.asp
Avatar billede struds Nybegynder
13. september 2001 - 20:30 #1
Vil du \"update\" databasen, eller kun formatere output?

Hvis det er output du vil formatere, skal du have fat i nogle streng-manipulerings funktioner (afhænger af hvilken database du bruger)
Avatar billede bjarke-b Nybegynder
13. september 2001 - 20:31 #2
Du kan ikke (så vidt jeg ved) gøre det i din sql, du skal høre den i dit recordset.

Hvis dit recordset hedder rs gør det sådan:

<%=Replace(rs(\"ditfelt_i_db\"),\"A\",\"E\")%>
Avatar billede fireworld Nybegynder
13. september 2001 - 20:33 #3
får denne error

Error Type:
Microsoft VBScript compilation (0x800A0414)
Cannot use parentheses when calling a Sub
/system/chat.asp, line 33, column 30
Replace(rs(\"c_txt\"),\"m\",\"test\")
-----------------------------^
Avatar billede fireworld Nybegynder
13. september 2001 - 20:34 #4
sql = \"select c_txt from chat_txt where c_to=\'1\' or c_to=\'0\' order by id DESC limit 20\"
set c_sql = aspconn.execute(sql)
Replace(c_sql(\"c_txt\"),\"m\",\"pik\")
Avatar billede bjarke-b Nybegynder
13. september 2001 - 20:36 #5
Er de 3 linier en del af en sub du har lavet ?
Avatar billede fireworld Nybegynder
13. september 2001 - 20:39 #6
nope
Avatar billede horsmark Nybegynder
13. september 2001 - 21:32 #7
kan du ikke blot lave en select inde i replacen (har lige set ms eksemplet)

SELECT REPLACE((SELECT mitFelt From tblChat WHERE id=et-eller-andet), \"A\", \"E\")

?

<mvh>Onkel HorsMark</mvh>
Avatar billede dr-kermit Nybegynder
14. september 2001 - 11:51 #8
Således min ven.

<%
do while not (rs.eof or rs.bof)
  strTemp = rs(\"c_txt\")
  str Temp = Replace(strTemp,\"m\",\"test\")
  response.write strTemp
  rs.movenext
loop
%>

mvh Kenneth Nielsen
Avatar billede horsmark Nybegynder
14. september 2001 - 11:54 #9
dr-kermit >> jowjow :-) det kan jo sagtens ordnes via asprecordsettet men problemet er vel at gøre det i ren SQL, det er vel det fireworld leder efter eller?
Avatar billede dr-kermit Nybegynder
14. september 2001 - 11:54 #10
Hvis det er ren sql du vil lave så gør du sådanne i din sql sætning.

strSQL = \"SELECT REPLACE(c_text, \'m\', \'test\') FROM T_TABEL)

Dette virker ihvertfald på en SQL server, er ikke klar over om det virker på en Access base.

MVH Kenneth Nielsen
Avatar billede dr-kermit Nybegynder
14. september 2001 - 12:01 #11
Den sidste parantes skal lige slettes. ;o) sorry

strSQL = \"SELECT REPLACE(c_text, \'m\', \'test\') FROM T_TABEL\"
Avatar billede fireworld Nybegynder
14. september 2001 - 15:00 #12
hva der så galt her?

sql = \"select REPLACE(c_txt,\'m\', \'test\'),c_to,c_from,c_dato,c_fromname from chat_txt where c_to=\" & Session(\"uid\") & \" or c_to=\'0\' or c_from=\" & Session(\"uid\") & \" order by id DESC limit 20\"
Avatar billede horsmark Nybegynder
14. september 2001 - 15:03 #13
hvad er den korrekte fejlmeddelelse? (asp fejl)

prøv lige dette mens du giver fejlen til os:
sql = \"select REPLACE(c_txt,\'m\', \'test\'),c_to,c_from,c_dato,c_fromname from chat_txt where (c_to=\'\" & Session(\"uid\") & \"\' or c_to=\'0\' or c_from=\'\" & Session(\"uid\") & \"\') order by id DESC limit 20\"
Avatar billede fireworld Nybegynder
14. september 2001 - 15:19 #14
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/system/chat.asp, line 44


i den linie er

response.write \"Fra: \" & c_sql(\"c_fromname\") & \" : \" & c_sql(\"c_txt\") & \"<br>\"
Avatar billede dr-kermit Nybegynder
14. september 2001 - 15:27 #15
skal se sådan her ud:

sql = \"select REPLACE(c_txt,\'m\', \'test\') as TXT ,c_to,c_from,c_dato,c_fromname from chat_txt where c_to=\" & Session(\"uid\") & \" or c_to=\'0\' or c_from=\" & Session(\"uid\") & \" order by id DESC limit 20\"


response.write \"Fra: \" & c_sql(\"c_fromname\") & \" : \" & c_sql(\"TXT\") & \"<br>\"

MVH Kenneth Nielsen
Avatar billede dr-kermit Nybegynder
14. september 2001 - 15:28 #16
Det du skal lægge mærke til er  :

select REPLACE(c_txt,\'m\', \'test\') as TXT, etc etc

og

c_sql(\"TXT\")

Avatar billede horsmark Nybegynder
14. september 2001 - 15:30 #17
sql=\"select REPLACE(c_txt,\'m\', \'test\') AS c_txt, \" &_
    \"c_to AS c_to, \" &_
    \"c_from AS c_from, \" &_
    \"c_dato AS c_dato, \" &_
    \"c_fromname AS c_fromname \" &_
    \"FROM chat_txt WHERE (c_to=\'\" & Session(\"uid\") & \"\' OR c_to=\'0\' OR c_from=\'\" & Session(\"uid\") & \"\') \" &_
    \"ORDER BY id DESC LIMIT 20\"
Avatar billede horsmark Nybegynder
14. september 2001 - 15:30 #18
argh pis *GG* for langsom ;-)
Avatar billede dr-kermit Nybegynder
14. september 2001 - 15:32 #19
Horsmark:

du behøver ikke at skrive \"c_to as c_to\" etc etc, kun den du manipulere med.

Mvh Kenneth Nielsen
Avatar billede horsmark Nybegynder
14. september 2001 - 15:34 #20
oki jeg blev nemmerlig lige i tvivl eftersom han ikke har en \'SELECT * blabla\'  med... så det var bare for en sikkerheds uskyld *G*

Avatar billede fireworld Nybegynder
14. september 2001 - 15:34 #21
takker alle for hjælpen
Avatar billede dr-kermit Nybegynder
14. september 2001 - 15:39 #22
;o)

så bliver der vel delt point ud nu

Kenneth Nielsen
Avatar billede horsmark Nybegynder
14. september 2001 - 15:42 #23
så lidt... anytime 8-D
Avatar billede fireworld Nybegynder
14. september 2001 - 15:49 #24
hmmmm det havde jeg sq da gjort.... mystisk *GG* prøver igen
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