Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:12 Der er 15 kommentarer og
2 løsninger

Hjælp til insert i asp

Hej

jeg har en insert på en asp javascript side.
den inserter hvad der Bl.a. står i et textarea, dvs den skal kunne indikere at der er ny linie i db (access)
nedenstående kode er den jeg bruger.!
--------------------------------
-bla bla bla- :)
      formVal = emptyVal;
    } else {
      if (altVal != "") {
        formVal = altVal;
      } else if (delim == "'") { // escape quotes
        formVal = "'"  + formVal.replace(/'/g,"''") + "'";
      } else {
        formVal = delim + formVal + delim;
-Bla bla bla-

det jeg gjorde for at løse problemet var at ændre til

formVal = "'"  + formVal.replace(/\n/g,"''") + "<br>";
men så vil den ikke accepter brug af " ' " i feltet (dvs jeg må ikke skrive ' i mit textarea, for melder siden fejl når jeg prøver at inserte..!

er der nogen der kan hjælpe mig med mit problem her..!
Avatar billede fennec Nybegynder
14. maj 2004 - 13:17 #1
du kan sagtens indsætte ' i din database. Du skal bare udskifte dem med 2.

conn.execute(insert.... values("& replace("her bliver brugt et ' tegn","'","''") &"))
Avatar billede fennec Nybegynder
14. maj 2004 - 13:18 #2
også manglede jeg lige nogle ' for at vise at det er tekst :o)

conn.execute(insert.... values("& replace('"her bliver brugt et ' tegn","'","''") &"'))
Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:22 #3
hmm.. den må du lige præciserer lidt mere.:! :(
Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:24 #4
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/Mcnovy.asp" -->
<!--#include file="../Connections/Lyrics.asp" -->
<%
// *** Edit Operations: declare variables

// set the form action variable
var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
if (Request.QueryString) {
  MM_editAction += "?" + Request.QueryString;
}

// boolean to abort record edit
var MM_abortEdit = false;

// query string to execute
var MM_editQuery = "";
%>
<%
// *** Insert Record: set variables

if (String(Request("MM_insert")) == "form1") {

  var MM_editConnection = MM_Lyrics_STRING;
  var MM_editTable  = "Lyric";
  var MM_editRedirectUrl = "/Lyrics/menu.asp";
  var MM_fieldsStr = "kunstner|value|titel|value|album|value|nr|value|genre|value|lyric|value";
  var MM_columnsStr = "Kunstner|',none,''|Titel|',none,''|Album|',none,''|Nr|',none,''|Genre|',none,''|Tekst|',none,''";

  // create the MM_fields and MM_columns arrays
  var MM_fields = MM_fieldsStr.split("|");
  var MM_columns = MM_columnsStr.split("|");
 
  // set the form values
  for (var i=0; i+1 < MM_fields.length; i+=2) {
    MM_fields[i+1] = String(Request.Form(MM_fields[i]));
  }

  // append the query string to the redirect URL
  if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.Count > 0) {
    MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
  }
}
%>
<%
// *** Insert Record: construct a sql insert statement and execute it

if (String(Request("MM_insert")) != "undefined") {

  // create the sql insert statement
  var MM_tableValues = "", MM_dbValues = "";
  for (var i=0; i+1 < MM_fields.length; i+=2) {
    var formVal = MM_fields[i+1];
    var MM_typesArray = MM_columns[i+1].split(",");
    var delim =    (MM_typesArray[0] != "none") ? MM_typesArray[0] : "";
    var altVal =  (MM_typesArray[1] != "none") ? MM_typesArray[1] : "";
    var emptyVal = (MM_typesArray[2] != "none") ? MM_typesArray[2] : "";
    if (formVal == "" || formVal == "undefined") {
      formVal = emptyVal;
    } else {
      if (altVal != "") {
        formVal = altVal;
      } else if (delim == "'") { // escape quotes
        formVal = "'"  + formVal.replace(/'/g,"''") + "'";
      } else {
        formVal = delim + formVal + delim;
      }
    }
    MM_tableValues += ((i != 0) ? "," : "") + MM_columns[i];
    MM_dbValues += ((i != 0) ? "," : "") + formVal;
  }
  MM_editQuery = "insert into " + MM_editTable + " (" + MM_tableValues + ") values (" + MM_dbValues + ")";

  if (!MM_abortEdit) {
    // execute the insert
    var MM_editCmd = Server.CreateObject('ADODB.Command');
    MM_editCmd.ActiveConnection = MM_editConnection;
    MM_editCmd.CommandText = MM_editQuery;
    MM_editCmd.Execute();
    MM_editCmd.ActiveConnection.Close();

    if (MM_editRedirectUrl) {
      Response.Redirect(MM_editRedirectUrl);
    }
  }

}
%>
<%
var User__MMColParam = "1";
if (String(Session("MM_Username")) != "undefined" &&
    String(Session("MM_Username")) != "") {
  User__MMColParam = String(Session("MM_Username"));
}
%>
<%
var User = Server.CreateObject("ADODB.Recordset");
User.ActiveConnection = MM_Mcnovy_STRING;
User.Source = "SELECT * FROM Login_test WHERE Username = '"+ User__MMColParam.replace(/'/g, "''") + "'";
User.CursorType = 0;
User.CursorLocation = 2;
User.LockType = 1;
User.Open();
var User_numRows = 0;
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/Css/menu.css" rel="stylesheet" type="text/css">
</head>

<body>
<% if (!User.EOF || !User.BOF) { %>
<form name="form1" method="POST" action="<%=MM_editAction%>">
  <table width="50%" border="0" class="Menu">
    <tr>
      <td>Kunstner</td>
      <td> <input name="kunstner" type="text" id="kunstner" size="50"></td>
    </tr>
    <tr>
      <td>Titel</td>
      <td> <input name="titel" type="text" id="titel" size="50"></td>
    </tr>
    <tr>
      <td>Album</td>
      <td> <input name="album" type="text" id="album" size="50"></td>
    </tr>
    <tr>
      <td>Album Nr</td>
      <td> <input name="nr" type="text" id="nr" size="50"></td>
    </tr>
    <tr>
      <td>Genre</td>
      <td> <input name="genre" type="text" id="genre" size="50"></td>
    </tr>
    <tr>
      <td valign="top">Lyric</td>
      <td> <p>
          <textarea name="lyric" cols="38" rows="15" wrap="VIRTUAL" id="lyric"></textarea>
        </p></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td> <input type="submit" name="Submit" value="Tilf&oslash;j"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td> <input name="add_by_user" type="hidden" id="add_by_user" value="<%=(User.Fields.Item("Username").Value)%>">
        <input name="add_by_nr" type="hidden" id="add_by_nr" value="<%=(User.Fields.Item("Id").Value)%>"></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<% } // end !User.EOF || !User.BOF %>
<% if (User.EOF && User.BOF) { %>
<p class="Menu">Du har ikke adgang til denne funktion, log ind eller opret en
  bruger</p>
<% } // end User.EOF && User.BOF %>

</body>
</html>
<%
User.Close();
%>
Avatar billede mm12010 Nybegynder
14. maj 2004 - 13:25 #5
replace(/\n/g,"<br>")//erstatter alle linieskift med html
replace(/\47/g,"&#39;")//erstatter alle ' med html
Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:41 #6
altså sådanne her..?

} else if (delim == "'") { // escape quotes
        formVal = "'" + formVal.replace(/\n/g,"<br>")
        formVal.replace(/'/g,"''") + "'";

????

det virker ikke.!
Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:44 #7
øhh

formVal = "'" + formVal.replace(/\n/g,"<br>")
        formVal.replace(/\47/g,"&#39;") + "'";

men virker stadig ikke.!
Avatar billede mm12010 Nybegynder
14. maj 2004 - 13:45 #8
else if (delim == "'") { // escape quotes
        formVal=formVal.replace(/\n/g,"<br>");
        formVal=formVal.replace(/\47/g,"&#39;");
      }
Avatar billede mcnovy Nybegynder
14. maj 2004 - 13:50 #9
} else if (delim == "'") { // escape quotes
        formVal=formVal.replace(/\n/g,"<br>");
        formVal=formVal.replace(/\47/g,"&#39;");
      } else {


Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'hej med dig'.
/Lyrics/addlyric.asp, line 80
Avatar billede mm12010 Nybegynder
14. maj 2004 - 13:55 #10
MM_editQuery = "insert into " + MM_editTable + " (" + MM_tableValues + ") values (" + MM_dbValues + ")";
  Response.Write(MM_editQuery);
  Response.End();

prøv lige det og smid resultatet her...
Avatar billede mcnovy Nybegynder
14. maj 2004 - 14:00 #11
insert into Lyric (Kunstner,Titel,Album,Nr,Genre,Tekst) values (Test1,test2,test3,test4,'',test5)
Avatar billede mm12010 Nybegynder
14. maj 2004 - 14:08 #12
MM_tableValues += ((i != 0) ? "," : "") + MM_columns[i];
    MM_dbValues += ((i != 0) ? "," : "") +"'"+formVal+"'";
Avatar billede mcnovy Nybegynder
14. maj 2004 - 14:16 #13
ja ok.. men nu laver den ' i de felter som ikke bliver skrevet til..!
men ellers ser det ud til at virke.!
Avatar billede mcnovy Nybegynder
14. maj 2004 - 14:16 #14
men lav lige et svar, så du kan få dine point..!
og mange tak for hjælpen.!
Avatar billede mcnovy Nybegynder
16. maj 2004 - 17:51 #15
nåh, men har fundet på en løsning nu.
men ellers tak for hjælpen, og send et svar så du kan få dine point..!
mm12010^^
Avatar billede mm12010 Nybegynder
17. maj 2004 - 07:57 #16
selv tak :o)
Avatar billede mcnovy Nybegynder
17. maj 2004 - 19:51 #17
tjaa. sådanne her bliver pointfordelingen, og synes da også at det er meget rimeligt, men ellers så skriv det til mig...
så må vi jo finde på en løsning.. :)
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