Avatar billede jmc Nybegynder
21. oktober 2002 - 23:22 Der er 2 kommentarer og
1 løsning

checke om findes i record ellers ikke tilføje

Det her bliver nok lidt bøvlet at forklare.

Hvordan kan man tjekke at {rs.vaerdi} ikke bliver tilføjet hvis den alledere i recordsættet rs.liste?
kan man tilføje det må en smart måde evt. med et javascript alert hvis den allede er tilføjet?

Evt. noget i retning af denne SQL:
"SELECT * FROM hent_preferencer WHERE CID is not (listen på formen) AND produkt_id = " + osv.


HER ER KODEN:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

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

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_THE_STRING
  MM_editTable = "vaerdi"
  MM_editRedirectUrl = "list_pref.asp"
  MM_fieldsStr  = "cid|value|vaerdi|value"
  MM_columnsStr = "cid|none,none,NULL|vaerdi|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set 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 <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim rs__MMColParam
rs__MMColParam = "1"
If (Request.QueryString("produkt_id") <> "") Then
  rs__MMColParam = Request.QueryString("produkt_id")
End If
%>
<%
Dim rs
Dim rs_numRows

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_THE_STRING
rs.Source = "SELECT *  FROM hent_relation  WHERE produkt_id = " + Replace(rs__MMColParam, "'", "''") + " AND pid = 3"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()

rs_numRows = 0
%>

<%
Dim rs_liste__MMColParam
rs_liste__MMColParam = "1"
If (Request.QueryString("produkt_id") <> "") Then
  rs_liste__MMColParam = Request.QueryString("produkt_id")
End If
%>
<%
Dim rs_liste
Dim rs_liste_numRows

Set rs_liste = Server.CreateObject("ADODB.Recordset")
rs_liste.ActiveConnection = MM_THE_STRING
rs_liste.Source = "SELECT * FROM hent_preferencer WHERE produkt_id = " + Replace(rs_liste__MMColParam, "'", "''") + ""
rs_liste.CursorType = 0
rs_liste.CursorLocation = 2
rs_liste.LockType = 1
rs_liste.Open()

rs_liste_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
rs_numRows = rs_numRows + Repeat1__numRows
%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>&lt;- <a href="<%="rediger_produkt.asp?produkt_id="&request.QueryString("produkt_id")%>">tilbage</a></p>
<form name="form1" method="POST" action="<%=MM_editAction%>">
  <select name="cid" id="cid">
    <%
While (NOT rs_liste.EOF)
%>
    <option value="<%=(rs_liste.Fields.Item("cid").Value)%>" <%If (Not isNull((rs.Fields.Item("cid").Value))) Then If (CStr(rs_liste.Fields.Item("cid").Value) = CStr((rs.Fields.Item("cid").Value))) Then Response.Write("SELECTED") : Response.Write("")%> ><%=(rs_liste.Fields.Item("child").Value)%></option>
    <%
  rs_liste.MoveNext()
Wend
If (rs_liste.CursorType > 0) Then
  rs_liste.MoveFirst
Else
  rs_liste.Requery
End If
%>
  </select>
  <input type="submit" name="Submit" value="tilf&oslash;j">
  <input name="vaerdi" type="hidden" id="vaerdi" value="0">
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp; </p>

<%
While ((Repeat1__numRows <> 0) AND (NOT rs.EOF))
%>
<%=(rs.Fields.Item("child").Value)%> &nbsp;<%=(rs.Fields.Item("vaerdi").Value)%><br>
<%
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rs.MoveNext()
Wend
%>
</body>
</html>
<%
rs.Close()
Set rs = Nothing
%>
<%
rs_liste.Close()
Set rs_liste = Nothing
%>
Avatar billede luzk Nybegynder
22. oktober 2002 - 12:06 #1
du kan lave en kommasepereret streng af dit recordset og derefter lave en SQL sætning der ser sådan her ud:

SELECT * FROM hent_preferencer WHERE CID NOT IN (" & inStr & ") AND produkt_id = " +
Avatar billede jmc Nybegynder
03. november 2002 - 21:04 #2
skulle jeg så tjekke om kommasepereret indeholder noget i SQL eller hvordan skulle dette virke?
Avatar billede jmc Nybegynder
06. november 2002 - 22:05 #3
tak
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