Vraag & Antwoord

Webprogrammeren & scripting

[access][asp] apostrof in record

17 antwoorden
  • Beste mensen, Ik was even op zoek in het forum naar een oplossing voor het apostrof in een record. Hoe ging het ook alweer? Ik heb het een keer gelezen ergens maar ik kon het niet terug vinden. Ik werk met ASP en ACCESS, zodra ik de ' uit mijn tekst haal voegd hij hem dus wel in. Kan iemand me helpen!? Bedankt
  • als je er 1 omruild voor 2 wordt ie opgeslagen :) Replace(msAccessTekst,"'","''")
  • Oke, en waar moet ik dat in mijn script plaatsen? ik geef ff mijn script hieronder.. [code:1:fe5dc73508] <% Dim Myconnection Dim Myrecordset Set Myconnection = server.createobject ("ADODB.Connection") Set Myrecordset = server.createobject ("ADODB.recordset") Dim MySQLstatement MySQLstatement = "INSERT INTO Nieuws (Nieuwsonderwerp, Nieuwsbericht)" _ & "VALUES ('" _ & request ("paramonderwerp") & "','" _ & request ("parambericht") & "')" Call Myconnection.open ( _ "Driver={microsoft Access Driver (*.mdb)};" & _ "DBQ=" & DB_FILE) Call Myrecordset.open (MySQLstatement, Myconnection) %> [/code:1:fe5dc73508] Het gaat hier om het veld, Nieuwsbericht. Bedankt
  • kan niemand mij ff helpen dan?! Ik weet niet hoe ik dat moet verwerken..
  • Doen we gewoon even rustig vriend? Je moet niet verwachten dat je binnen een uur antwoord krijgt...
  • :roll: Sorry hoor, maar ik ben ermee bezig en het wil de hele dag al niet lukken.. En ik heb dit forum en een ander forum al afgezocht...ik wil gewoon graag het antwoord, en als je dan ziet dat het al 30 keer bekeken is, en nog steeds maar 1 antwoord hebt gehad is dat soms een beetje frustie...maar nogmaals mijn excusses.... ps. Noem me maar gewoon Remco...
  • Neem onderstaande code maar over............ <% FUNCTION fixQuotes( theString) fixQuotes = REPLACE( theString, "'", "''" ) END FUCTION Dim Myconnection Dim Myrecordset Set Myconnection = server.createobject ("ADODB.Connection") Set Myrecordset = server.createobject ("ADODB.recordset") HIER............. paramonderwerp = request ("paramonderwerp") parambericht= request ("parambericht") Dim MySQLstatement MySQLstatement = "INSERT INTO Nieuws (Nieuwsonderwerp, Nieuwsbericht)" _ & "VALUES ('" _ & fixQuotes("paramonderwerp") & "','" _ & fixQuotes("parambericht") & "')" Call Myconnection.open ( _ "Driver={microsoft Access Driver (*.mdb)};" & _ "DBQ=" & DB_FILE) Call Myrecordset.open (MySQLstatement, Myconnection) %>
  • hey, Bedankt voor je code, alleen werkt ie nog niet helemaal zoals het moet. Hij voegt nu niet de tekst in die ik invoer, maar hij voert nu paramonderwerp en parambericht in bij Nieuwsonderwerp en Nieuwsbericht. Wel snap ik nu waar je die functie kwijt moet. Dus we zijn er bijna..alvast weer bedankt. [code:1:bc28697c93] MySQLstatement = "INSERT INTO Nieuws (Nieuwsonderwerp, Nieuwsbericht)" _ & fixQuotes("paramonderwerp") & "','" _ & fixQuotes("parambericht") & "')" [/code:1:bc28697c93]
  • :-? hehe, paramonderwerp en parambericht moeten "variabelen" voorstellen, dus de dubbele aanhalingstekens zijn overbodig, mits je natuurlijk letterlijk "paramonderwerp" en "parambericht" in je databank wilt zetten. Deze functie: 'Function: FixQuotes 'Input: vData ,string 'Output: string 'retourneerd de megegeven waarden 'met 2 enkele aanhalingstekens ipv. 1 'zodat het SQL statement geldig blijft '------------------------------------------ Function FixQuotes(byval vData) FixQuotes = Replace(vData,"'","''") End Function '------------------------------------------ Deze functie moet je altijd gebruiken bij SQL statements met variabelen. Als je dit niet doet, dan kan en zal jouw aplicatie makkelijk foutmeldingen tonen,bv. als een gebruiker een nieuwsbericht plaats met enkele aanhalingstekens. Tip! Maak ook gebruik van "Server.HTMLEncode", als je waardes uit een formulier ophaalt, als je dit niet doet kan het formulier ongeldig worden, door dubbele aanhalingstekens als je waardes uit de database naar het formulier toe schrijft, om bv. een "nieuwsbericht" aan te passen.
  • Bedankt mensen, Ik snap nu heel goed hoe het zit en wat ik moet doen. Hij werkt inmiddels en ik ben jullie dankbaar. Ik leer steeds meer en ik hoop zo ook weer anderen te helpen. Ik geef hier onder nog even de goede code zonder fouten. Oh ja, ik heb zelf inmiddels ook de functie aangepast zodat de enters ook gewoon terug komen in de tekst! [code:1:ae6a5bd6f5] <% FUNCTION fixQuotes( theString) fixQuotes = REPLACE( theString, "'", "''") fixQuotes = REPLACE( fixQuotes, vbCrLf, "<BR>") END FUNCTION Dim Myconnection Dim Myrecordset Set Myconnection = server.createobject ("ADODB.Connection") Set Myrecordset = server.createobject ("ADODB.recordset") paramonderwerp = request ("paramonderwerp") parambericht= request ("parambericht") Dim MySQLstatement MySQLstatement = "INSERT INTO Nieuws (Nieuwsonderwerp, Nieuwsbericht)" _ & "VALUES ('" _ & fixQuotes(paramonderwerp) & "','" _ & fixQuotes(parambericht) & "')" Call Myconnection.open ( _ "Driver={microsoft Access Driver (*.mdb)};" & _ "DBQ=" & DB_FILE) Call Myrecordset.open (MySQLstatement, Myconnection) %> [/code:1:ae6a5bd6f5]
  • ik zal je bij deze nog ff corrigeren als je het niet erg vind? (retorisch :)) Nu heb je de naam van de functie teniet gedaan. Je fixed jouw quotes voor een geldig SQL statement, en tevens fix je de vbCrlf voor jouw response display. Dit wil je apart houden :) De <br> is alleen nodig in jouw response als je dit wilt. En je kan dan ook nog kiezen of je de tekst in niet beter in een <pre> kunt zetten. (een <pre> mag in andere tags voorkomen en geeft enters weer)
  • hey, ik heb mijn tekst tussen de <pre> gehad, maar dan geeft ie overal een extra blanco regel tussen en dat is niet wat ik wil. Zoals ik hem nu heb doet hij 2 dingen goed, de ' worden netjes opgeslagen in de database, en de enters die ik in een tekst geef, worden ook netjes opgeslagen en weer weergeven als ik de tekst uit de database haal. Is er nog een andere oplossing dan?!
  • de extra enters krijg je omdat je ipv "vbCrlf", "<br>" hebt opgeslagen, als je deze eruit filtert dan werkt het perfekt.
  • met die functie doe je nu 2 aparte dingen het is beter als je deze opsplitst in 2 functies. 1. Je maakt een variabele SQL compatibel 2. Je verwijderd "carriage return + linefeed" voor <br> Dat is ongeveer hetzelfde als fietswielen onder een auto monteren en kijken hoe lang het goed gaat :) ..met andere woorden dit is niet logisch.
  • haha oke, ik snap het..dus eigenlijk moet ik dezelfde functie nog een keer doen, maar dan met de enter functie.
  • beetje off-topic misschien, maaruh, is <pre> niet een beetje deprecated :-?
  • <!ENTITY % pre.content "(#PCDATA | a | br | span | bdo | map | tt | i | b | %phrase; | %inline.forms;)*"> <!--=================== Preformatted Text ================================--> <!-- content is %Inline; excluding "img|object|big|small|sub|sup" --> <!ELEMENT pre %pre.content;> <!ATTLIST pre %attrs; xml:space (preserve) #FIXED 'preserve' > vers uit de DTD van w3c (xhtml1 strict) http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd hij is er nog wel :) (css --> white-space:pre zou dit opvolgen maar werkt niet in 1 versie van IE)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.