Avatar billede whatever Nybegynder
18. april 2002 - 23:17 Der er 7 kommentarer og
1 løsning

Data oprettes to gange??

Hej

Jeg har følgende script:

----------------------

<% @LANGUAGE = VBScript %>
<%
    Option Explicit
    Response.Expires = 0
%>
<!--#include file="../adovbs.inc"-->
<%
    '************************************************
    ' Variablerne defineres
    '************************************************
    Dim conn, rs, strConnect, strFirma, strAdresse, intPostnr, strPerson, strStilling, intTelefon, strEmail

    '************************************************
    ' Henter dataen fra formularen
    '************************************************
    strFirma = Request.Form("fFirma")
    strAdresse = Request.Form("fAdresse")
    intPostnr = Request.Form("fPostnr")
    strPerson = Request.Form("fPerson")
    strStilling = Request.Form("fStilling")
    intTelefon = Request.Form("fTelefon")
    strEmail = Request.Form("fEmail")

    '************************************************
    ' Connecter til databasen
    '************************************************
    'strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.mappath("/") & "\..\scripts\release.mdb"
    strConnect = "Data Source=c:\inetpub\database\release.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
    Set conn = Server.CreateObject ("ADODB.Connection")
    conn.Open strConnect

    '************************************************
    ' Gemmer dataen i databasen
    '************************************************
    Set rs = Server.CreateObject ("ADODB.Recordset")
    rs.CursorLocation = adUseServer
    rs.CursorType = adOpenForwardOnly
    rs.LockType = adLockOptimistic
    rs.Open "kontakt", conn, , , adCmdTable
    rs.AddNew
    rs("firma") = strFirma
    rs("adresse") = strAdresse
    rs("postnr") = Int(intPostnr)
    rs("kontaktperson") = strPerson
    rs("stilling") = strStilling
    rs("telefon") = Int(intTelefon)
    If strEmail <> "" Then
        rs("email") = strEmail
    End If
    rs.Update

    '************************************************
    ' Lukker forbindelsen til databasen
    '************************************************
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing   
       
    Response.Redirect("default.asp?save=true")

%>

-----------------

Problemet er, at nogle gange tilføjes dataen to gange, hvordan kan det være?
Avatar billede eagleeye Praktikant
18. april 2002 - 23:39 #1
Jeg ved ikke helt om det hjælper men jeg har altid benytter adOpenKeyset som CursorType:

rs.CursorType = adOpenKeyset
Avatar billede whatever Nybegynder
19. april 2002 - 00:01 #2
Den gør det stadig.
Avatar billede eagleeye Praktikant
19. april 2002 - 00:03 #3
kan det tænkes at siden som gemmer data i nogle tilfælde blvier kaldt to gange? For selv koden ligger ikke op til de så vidt jeg kan se.
Avatar billede whatever Nybegynder
19. april 2002 - 00:08 #4
Min formular ser sådan ud:

<html>
<head>
<title>Release02 > Hvem skal inviteres?</title>
<script type="text/javascript">
<!--
function tjek(fn) {
  fi = fn.fFirma.value;
  ad = fn.fAdresse.value;
  pn = fn.fPostnr.value;
  ko = fn.fPerson.value;
  st = fn.fStilling.value;
  tl = fn.fTelefon.value;
  em = fn.fEmail.value;
 
  if ((fi.length == "") || (ad.length == "") || (pn.length == "") || (ko.length == "") || (st.length == "") ||  (tl.length == "")) {
    alert('Følgende felter skal udfyldes:\n\n  - Firma\n  - Adresse\n  - Postnr\n  - Kontaktperson\n  - Stilling\n  - Telefon');
    document.gemKontakt.fFirma.focus();
    return false;
  }
  var reg_pn = /^([0-9]{4})/;
  if (pn.length != "") {
    if (!reg_pn.test(pn)) {
      alert('Det indtastede \"Postnr\" er ikke gyldig.');
      document.gemKontakt.fPostnr.focus();
      return false;
      }
  }
  var reg_tl = /^([0-9]{8})/;
  if (tl.length != "") {
    if (!reg_tl.test(tl)) {
      alert('Den indtastede \"Telefon\" er ikke gyldig.');
      document.gemKontakt.fTelefon.focus();
      return false;
      }
  }
  var reg_em = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
  if (em.length != "") {
    if (!reg_em.test(em)) {
      alert('Den indtastede \"E-mail\" er ikke gyldig.');
      document.gemKontakt.fEmail.focus();
      return false;
      }
  }
  document.gemKontakt.submit();
}
//-->
</script>

<style type="text/css">
<!--
a {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #AAAAAA; text-decoration: none}
a:hover {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #CCCCCC; text-decoration: underline}
.text10BoldBlack {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #000000}
.text10Bold {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #FFFFFF}
.text14Bold {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14pt; font-weight: bold; color: #FFFFFF}
.formText {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; color: #FFFFFF; background-color: #B00D28; border: #FFFFFF; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
.formButton {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #FFFFFF; background-color: #B00D28; text-align: center; vertical-align: middle; border: #FFFFFF; border-style: solid; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px}
-->
</style>
</head>

<body text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#B00D28">
<table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td align="center"><img src="logo.gif" width="130" height="130"></td>
  </tr>
  <tr>
    <td height="35" class="text14Bold" style="text-align: center">
      Hvem skal inviteres til Release02?
    </td>
  </tr>
  <tr>
    <td height="35" class="text14Bold" style="text-align: center"><a href="list.asp">Oversigt over indtastede</a></td>
  </tr>
  <%
    If Request.QueryString("save") = "true" Then
        Response.Write "<tr>"& VbCrLF
          Response.Write "<td height=""35"" class=""text10BoldBlack"" style=""text-align: center"">Firmaet et gemt i databasen</td>"& VbCrLf
        Response.Write "</tr>"& VbCrLF
    End If
  %>
  <tr>
    <td align="center">
      <form name="gemKontakt" method="post" action="gem.asp" onSubmit="return tjek(this);">
        <table width="400" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Firma:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fFirma" size="30" maxlength="40" class="formText" style="width:150pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Adresse:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fAdresse" size="30" maxlength="50" class="formText" style="width:150pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Postnr:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fPostnr" size="10" maxlength="4" class="formText" style="width:50pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Kontaktperson:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fPerson" size="30" maxlength="40" class="formText" style="width:150pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Stilling:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fStilling" size="30" maxlength="30" class="formText" style="width:150pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">Telefon:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fTelefon" size="10" maxlength="8" class="formText" style="width:50pt">
            </td>
          </tr>
          <tr>
            <td width="146" class="text10Bold" height="30">
              <div align="right">E-mail:&nbsp;</div>
            </td>
            <td width="254" height="30">
              <input type="text" name="fEmail" size="30" maxlength="50" class="formText" style="width:150pt">
            </td>
          </tr>
          <tr>
            <td width="146">&nbsp;</td>
            <td width="254">&nbsp;</td>
          </tr>
          <tr>
            <td width="146">&nbsp;</td>
            <td width="254">
              <input type="submit" name="Submit" value="Submit" class="formButton" onfocus="blur()">
            </td>
          </tr>
        </table>
      </form>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede eagleeye Praktikant
19. april 2002 - 00:17 #5
Dit test script har en:
document.gemKontakt.submit();

Prøv at skifte ud med:
return true;

Eller vi den højst sandsynligt submitte to gange.
Avatar billede whatever Nybegynder
19. april 2002 - 00:23 #6
Hvad kan jeg sige - du har løst mit problem.
Avatar billede whatever Nybegynder
19. april 2002 - 00:23 #7
Så hvis du laver et svar.
Avatar billede eagleeye Praktikant
19. april 2002 - 00:24 #8
Det lyder godt  :)
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