Avatar billede wilweb Nybegynder
12. januar 2003 - 18:57 Der er 13 kommentarer og
2 løsninger

Insert i access database

Jeg vil inserte nogle text area fra en form til en access database.
Men jeg har problemer med at inserte dette felt, måske fordi det indeholder HTML tags og speciel tegn ();'
 
form("aEksempel") indeholder: <body onLoad="window.open('minFil_Med_flash.htm','skod','fullscreen,scrollbars=no');">

asp koden:

aEksempel = Replace(request.form("aEksempel"), vbCrlf, "<BR>")
strSQL = "INSERT INTO koder (aKat, aEmne, [aSyntax], [aEksempel]) VALUES ('" & Request.Form("aKat") & "', '" & Request.Form("aEmne") & "', '" & Request.Form("aSyntax") & "', '" & aEksempel & "')"
    'Response.Write(strSQL)
    Set rs = Conn.Execute(strSQL)

med får denne fejl:

Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression ''<body onLoad="window.open('minFil_Med_flash.htm','skod','fullscreen'.
/asp/addnew.asp, line 12

linje 11 = Set rs = Conn.Execute(strSQL)

Hvordan får jeg skrevet kode eksempler til databasen lige som her på eksperten hvor man kan skrive alt slags kode
:>Gizom
Avatar billede soes Nybegynder
12. januar 2003 - 19:11 #1
er ikke lige sikker paa om dette kan bruges, men giv det et forsoeg og meld tilbage.

Function RP(strIn)
  strIn = Replace(strIn, "'", "''")
  strIn = Replace(strIn, """, """")
  RP = strIn
End Function

i din sql skriver du saa:
strSQL = "INSERT INTO koder (aKat, aEmne, [aSyntax], [aEksempel]) VALUES ('" & RP(Request.Form("aKat")) & "', '" & RP(Request.Form("aEmne")) & "', '" & RP(Request.Form("aSyntax")) & "', '" & RP(aEksempel) & "')"
Avatar billede wilweb Nybegynder
12. januar 2003 - 19:24 #2
Error Type:
Microsoft VBScript compilation (0x800A0409)
Unterminated string constant
/asp/addnew.asp, line 17, column 33
strIn = Replace(strIn, """, """")
--------------------------------^
Avatar billede medions Nybegynder
12. januar 2003 - 20:07 #3
Function RP(strIn)
  strIn = Replace(strIn, "'", "''")
  RP = strIn
End Function

Prøv sådan!

//>Rune
Avatar billede wilweb Nybegynder
12. januar 2003 - 22:13 #4
nu får jeg en Runtime error:
Line: 0
Error: Expected ')'

og så udskrvives min strSQL
Response.write = strSQL = INSERT INTO koder (aKat, aEmne, aSyntax, aEksempel) VALUES ('HTML Javascript', 'Fullscreen', '', '
')
Avatar billede wilweb Nybegynder
12. januar 2003 - 22:39 #5
Det er måske lettere at stille spm således:

Hvordan ville i indsætte denne tekst i en access database:

<body onLoad="window.open('minFil_Med_flash.htm','skod','fullscreen,scrollbars=no');">
Avatar billede eagleeye Praktikant
12. januar 2003 - 22:55 #6
Jeg ville udskift et ' med to '' med dette hvis str så er lig den streng du har vist

str "<body onLoad=""window.open('minFil_Med_flash.htm','skod','fullscreen,scrollbars=no');"">"

str = replace(str,"'","''")

SQL = "INSERT INTO xxxxx (kolonnenavn) VALUES ('" & str & "')"
Avatar billede wilweb Nybegynder
12. januar 2003 - 23:36 #7
eagleeye:> Det jeg vil er at kunne skrive noget kode om det er HTML, ASP eller PHP i et form felt og så inserte det i en access database og så have mulig hed for at vise det igen, nøjagtig som her på eksperten.dk
Avatar billede eagleeye Praktikant
12. januar 2003 - 23:39 #8
Hvis du vil havde det vist som tekst så skal du bruger Server.HTMLencode som disabler HTML koden og hvis man udskriver den vises den som tekst.

str = replace(Server.HTMLencode(str),"'","''")
Avatar billede wilweb Nybegynder
13. januar 2003 - 23:27 #9
Jeg er åbenbart meget dum til at forklare mig! Nu gør jeg et tredie forsøg:
Fra et text felt, modtager jeg følgende kode:
For i = 0 to 6

next
Avatar billede wilweb Nybegynder
13. januar 2003 - 23:31 #10
Kode der skal skrives til databasen og sådan skal den også se ud når jeg henter den igen og udskriver det. Hvordan gør man?
For i = 0 to 6
  if a = 3 then
    hændelse1
  else
    hændelse2
  end if
next
Avatar billede eagleeye Praktikant
13. januar 2003 - 23:37 #11
Hvis det er ren tekst kan du bare gemme det i databsen og udskrive det igen.
Når man gemmer tekst i en database skal man huske at lave et ' om til to '' for ikke at få SQL syntax fejl når man indsætter.
Ligedes hvis det kommer fra et textarea skal vbCrLf (return-knappen) laves om til <br> for at få linie skift på HTML siden.
Avatar billede eagleeye Praktikant
13. januar 2003 - 23:41 #12
Hvis du vil gemme tekst som indeholder HTML tags eksvis <b>fed</b> og udskriver det i en HTML-side bliver teksten fed med fed skrift. Hvis du vil undgå det ligesom her på eksperen hvor koden står som den er skrevet skal du bruge Server.HTMLencode som disabler HTML-koden men når du udskriver strengen ligner det HTML-kode.
Avatar billede wilweb Nybegynder
13. januar 2003 - 23:49 #13
eagleeye:> Jeg går straks iganag med at se om jeg har fatte det, og i øvrigt tak for din tålmodighed:>
'sætter <br> ind i teksten fra text area
str = Replace(request.form("aEksempel"), vbCrlf, "<BR>")
' function der laver et ' om til to ''
Function RP(strIn)
  strIn = Replace(strIn, "'", "''")
  RP = strIn
End Function

'min SQL
strSQL = "INSERT INTO koder ([aEksempel]) VALUES ('" & RP(str) & "')"

'hvis man vil udskrive, så koden står som indtastet er det sådanne??
Response.write rs("str")
Avatar billede eagleeye Praktikant
14. januar 2003 - 18:19 #14
Ja så udskriver den direkte det som er skrevet i text areaet, det skal dog være den "rigttige" kolonnennavn str ---> aEksempel:

Du skal så hendte det fra databasen med en SQL sætning eks:

SQL = "SELECT * FROM koder WHERE ID = xxx" 'Eller helt uden where
Set rs = Conn.execute(SQL)

Response.write rs("aEksempel")
Avatar billede wilweb Nybegynder
14. januar 2003 - 18:47 #15
Takker for hjælpen....
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