Mirco Schmidt: Abfragen ob ein Datensatz bereits vorhanden ist

Hallo ASP'ler,

ich habe ein kleines Problem mit ASP und wäre recht froh,
wenn mir einer von Euch evtl. einmal hierbei helfen könnte.

Ich baue gerade eine Datenbank zur Domainverwaltung auf und stehe nun leider vor einem
kleinem Problem. Ich möchte verhindern, daß Domains doppelt eingetragen werden.
Daher wollte ich, daß bevor irgendwelche Daten, aus dem vorher abgeschicktem Formular
in die Datenbank übernommen werden, erst die Spalte "domainname" in der Tabelle "ddb1" nach dem angegebenem Domainnamen durchsucht wird. Sollte die Domain dann bereits in
der Datenbank existieren, soll ein Text ausgegeben werden, daß die Domain bereits in dem
System existiert und der Vorgang ohne Eintrag beendet werden.
Wenn die Domain noch nicht eingetragen ist, sollen die Daten ganz normal in die Datenbank
aufgenommen werden und eine Meldung ausgegeben werden, daß der Eintrag erfolgreich war.

Der Aktuelle Quelltext ist der folgende:

<%@ Language=VBScript EnableSessionState=False%>
<!--#include file ="incl/ADOVBS.inc"-->
<%
Dim DatabaseConnection
Dim SQL

Set DatabaseConnection = Server.CreateObject("ADODB.Connection")
DatabaseConnection.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("./ddb.mdb") & ";"

frei = Cstr(Request.form("frei"))
rubrik = Cstr(Request.form("rubrik"))
domainname = Cstr(Request.form("domainname"))
userid = Cstr(Request.form("userid"))
userpw = Cstr(Request.form("userpw"))
kurzbeschr = Cstr(Request.form("kurzbeschr"))
preis = Cstr(Request.form("preis"))
name = Cstr(Request.form("name"))
firma = Cstr(Request.form("firma"))
strasse = Cstr(Request.form("strasse"))
plz = Cstr(Request.form("plz"))
stadt = Cstr(Request.form("stadt"))
land = Cstr(Request.form("land"))
email = Cstr(Request.form("email"))
tel = Cstr(Request.form("tel"))
fax = Cstr(Request.form("fax"))
prvereinb = Cstr(Request.form("prvereinb"))
datum = date()
keywords = rubrik & ", " & domainname & ", " & userid & ", " & kurzbeschr & ", " & preis

SQL = "INSERT INTO ddb1 (frei, rubrik, domainname, userid, userpw, kurzbeschr, preis, name, firma, strasse, plz, stadt, land, email, tel, fax, prvereinb, datum, keywords)"_

& " VALUES ('"& frei & "','" & rubrik & "','" & domainname & "','" & userid & "','" & userpw & "','" & kurzbeschr & "','" & preis & "','" & name & "','" & firma & "','" & strasse & "','" & plz & "','" & stadt & "','" & land & "','" & email & "','" & tel & "','" & fax & "','" & prvereinb & "','" & datum & "','" & keywords & "');"

DatabaseConnection.execute SQL

%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>

</BODY>
</HTML>
<%
DatabaseConnection.Close
%>

  1. Hallo,

    um Dein Problem zu lösen, solltest Du ungefähr so vorgehen:

    <%
    FindSQL = "SELECT Spalte FROM Tabelle WHERE Spalte = '" & Wert & "'"

    Set FindRS = Server.CreateObject("ADODB.Recordset")
        FindRS.Open FindSQL, conn, 3, 3
        If FindRS.EOF Then
            ' --- Hier Insertstatement einfügen
            Else
                Response.Write "Domain schon vorhanden"
        End if
        FindRS.Close
    Set FindRS = Nothing
    %>

    Tschau, Stefan

    P.S.: Schau mal bei http://www.asp-database.de vorbei

    1. Hi

      Da die Connection schon definiert ist kann man das
      denn noch hierhin verkürzen :
      <%
      FindSQL = "SELECT Spalte FROM Tabelle WHERE Domainname = '" & Domainname & "'"

      set FindRS=DatabaseConnection.execute(FindSQL)>     
      If FindRS.EOF Then
        *-- dein Insert-Statement --*
      else
        Response.Write "Domain schon vorhanden"
      end if

      %>

      gruss
      Jens

      1. Tausend D@nke ihr beiden!

        Gruß
        Mirco

        P.S. Stefan: Auf Deinen Seiten bin ich sowieso ständiger Gast .-)