Abfragen ob ein Datensatz bereits vorhanden ist
Mirco Schmidt
- asp.net
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
%>
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
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
Tausend D@nke ihr beiden!
Gruß
Mirco
P.S. Stefan: Auf Deinen Seiten bin ich sowieso ständiger Gast .-)