duplicate problem

Udo

Erfahrenes Mitglied
Hallo Leute!

Bei meinem ASP Script mit Datenbankanbindung

habe ich ein Formular erstellt und durch dieses

Formular mache ich Einträge in die Datenbank!

Problem:

Ich möchte bevor ich die Werte in die Datenbank
eintrage abfragen ob sich dieser Wert schon in
der Datenbank befindet!

Denn wenn ich es nicht abfrage kommt immer diese
beschissen Fehlermeldung:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.

Kann mir vielleicht jemand helfen??!!

MFG Udo
 
Hi,

mach doch einfach vor dem INSERT eine Select-Abfrage wo du in der Where Bedingung deine übergabewerte des Formulares einträgst.
Wenn EOF machst du ein Insert andernfalls leitest du zurück.


Gruß

Texaner
 
Danke, mein Problem hat sich schon gelöst!

Hab deine art ausprobiert habs aber nicht zum laufen gebracht!

Meine art:

<%
On Error Resume Next
SET Verbindung = Server.CreateObject("ADODB.Connection")
Verbindung.Open "dsn=Data;database=Data"

IF (Request.Form("Submit")="Apply")and(Request.Form("Name") <> "")and(Request.Form("email") <> "") _
and(Request.Form("Username") <> "")and(Request.Form("passeingabe") <> "") THEN
SQL = "INSERT into User VALUES ('" & Request.Form("Name") & "', '" & Request.Form("email") & "', '" & Request.Form("Username") & "', '" & Request.Form("passeingabe") & "')"

Verbindung.Execute(SQL)

If Verbindung.Errors.Count > 0 then
FOR Each objerror in Verbindung.Errors
If objError.Number <> 0 THEN
Response.Write("***Schon vergeben***")
End if
Next


End if
End if
%>


Danke Trotzdem!!

CU Udo
 
hi,
On Error Resume Next

überspringt den fehler ja nur, womit dein problem nur umgangen wurde, eigentlich sind duplicates erlaubt, wo ich zu der frage komme, ob du in deiner access db einen autowert definiert hast, und einen primary key?
 
Es geht um den Primery Key!!

Er soll sagen das wenn man im Primery Key einen doppelten eintrag
eigeben will das der wert schon vorhanden ist und nicht die
beschissene Fehlermeldung!

CU Udo
 
hat der user keine eindeutige id?

wie ist der primary key definiert (welches feld)?

ne alternative wäre, du machst vorher ein select wo dur dir alle recordsets mit eben diesen eingaben holst, wenn du ein ergebnis hast, bedeutet das das diese daten bereits in der datenbank sind und du kannst den user auf eine eigene "fehlermeldung" / information weiterleiten...

hast du keine results bekommen heißt das, das diese daten noch nicht in der datenbank sind und du den datensatz hinzufügen kannst....

vielleicht hab ich auch was falsch verstanden? :confused:

regards
 
Um mich klar auszudrücken:

Es ist eine Passwortgeschützte ASP seite und
auf der habe ich einen Link wo mann sich als user
anmelden kann!
Der Primery Key in der Datenbank ist der Username!
Und wenn sich einer mit einem schon vorhandenen
Usernamen anmelden will soll da stehen das dieser
Username schon vergeben ist!!
Logischer weise ist es schlecht 2 gleiche User auf seiner
Homepage zu haben!!

Jetzt sollte es klar sein!

CU Udo
 
Original geschrieben von Quentin
ne alternative wäre, du machst vorher ein select wo dur dir alle recordsets mit eben diesen eingaben holst, wenn du ein ergebnis hast, bedeutet das das diese daten bereits in der datenbank sind und du kannst den user auf eine eigene "fehlermeldung" / information weiterleiten...

hast du keine results bekommen heißt das, das diese daten noch nicht in der datenbank sind und du den datensatz hinzufügen kannst....

jo ich hab verstanden, dann müsste das so funktionieren wie ich das hier oben beschrieben habe, einfach vorher noch ein select machen um nachzusehen ob der username schon existiert...

regards
 

Neue Beiträge

Zurück