Heart..pumps blood.Has nothing to do with emotion! Bored
Je doet een select in uw tabel op die waarde. Indien de query een rij teruggeeft, dan bestaat de waarde al dus dan insert je niets. Anders insert je wel.
Of je kan ook een unique index op dat veld in uw tabel leggen, je insert gewoon uw rij en vangt een eventuele exception af die geraised wordt als de unique index constraint overtreden wordt. In dat geval onderdruk je de foutboodschap en geef je uw eigen foutboodschap.
Of je kan ook een unique index op dat veld in uw tabel leggen, je insert gewoon uw rij en vangt een eventuele exception af die geraised wordt als de unique index constraint overtreden wordt. In dat geval onderdruk je de foutboodschap en geef je uw eigen foutboodschap.
https://fgheysels.github.io/
uw?? 
verder: het is helaas niet mogelijk om een primary key aan te maken want die bestaat al. (Id van het record)
Verder, ben het nog een beetje aan het leren, zou je misschien iets preciezer kunnen zijn?
Het gaat trouwens om MS SQL (mocht dat nog verschil uit maken)
verder: het is helaas niet mogelijk om een primary key aan te maken want die bestaat al. (Id van het record)
Verder, ben het nog een beetje aan het leren, zou je misschien iets preciezer kunnen zijn?
Het gaat trouwens om MS SQL (mocht dat nog verschil uit maken)
Heart..pumps blood.Has nothing to do with emotion! Bored
MS SQL moet ook wel unique keys hebben die je naast de primary key kunt hebben.
Who is John Galt?
Je kan ook nog op ieder ander veld een unieke index leggen. Dat veld hoeft daarvoor geen primary key te zijn.Op woensdag 13 maart 2002 17:44 schreef TeeDee het volgende:
uw??
verder: het is helaas niet mogelijk om een primary key aan te maken want die bestaat al. (Id van het record)
Voor je uw insert doet, ga je een query uitvoeren die gaat gaan kijken of er al een record bestaat met die waarde, een gewone select query dus. Indien die query resultaat geeft, dan ga je niets gaan inserten. Geeft die query geen rijen terug, dan kun je wel een record gaan inserten, want er bestaat nog geen record met die value.Verder, ben het nog een beetje aan het leren, zou je misschien iets preciezer kunnen zijn?
Als je het concept van de unique index doet:
gewoon hoedanook uw record 'proberen' te inserten. Bestaat er al een record met die waarde dan zal de unique index op dat veld ervoor zorgen dat het record niet kan geinserted worden en ervoor zorgen dat er een foutboodschap getoond wordt.
https://fgheysels.github.io/
/edit:
volgens mij iets gevonden:
Volgens mij zou dit moeten werken (ik heb de dbwaarde van de username wel weer omgebouwd naar char
)
/edit:
Yup, het werkt
hij checkt nu alleen op gebruikersnaam en als die al bestaat -> hoppa, terug en opnieuw! 
thanks all
volgens mij iets gevonden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <%
Dim strSQL
strSQL = "SELECT * FROM MyTable WHERE username = '" & _
Request.Form("username") & "'"
Set rs = db.Execute()
If rs.EOF Then
'Now do the insert
Else
Response.Write "Record exists"
End If
%> |
Volgens mij zou dit moeten werken (ik heb de dbwaarde van de username wel weer omgebouwd naar char
/edit:
Yup, het werkt
thanks all
Heart..pumps blood.Has nothing to do with emotion! Bored
Het werkt mischien, maar waneer iemand dit als oplossing bij mij zou komen aandragen, zou ik het toch afkeuren. Dit KAN namelijk mis gaan. De kans is natuurlijk klein, maar elke programmeur is natuurlijk op de hoogte van Murphy's law toch?Op woensdag 13 maart 2002 17:49 schreef whoami het volgende:
Voor je uw insert doet, ga je een query uitvoeren die gaat gaan kijken of er al een record bestaat met die waarde, een gewone select query dus. Indien die query resultaat geeft, dan ga je niets gaan inserten. Geeft die query geen rijen terug, dan kun je wel een record gaan inserten, want er bestaat nog geen record met die value.
Een juistere manier is de velden die uniek moeten zijn, ook op uniek in de DB te zetten (dit zou je eigenlijk altijd moeten doen om de integriteit van je DB te kunnen behouden). Waneer je nu een al bestaande naam wil inserten krijg je een foutmelding terug van de DB. Deze kun je netjes afvangen en vervolgens kun je de gebruiker op de hoogte stellen dat hij een andere waarde zal moeten kiezen.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
een read en write lock aanvragen voor de hele tabel als je dit gaat doen. Anders is het theorisch mogelijk omdat het multiuser is, dat er 2 dezelfde gebruikersnamen in de database komen te staan. Dit zal niet zo'n vaart lopen, maar als je ooit nog te maken krijgt met veel select en inserts op 1 tabel in korte tijdseenheden, dan gaat het wel een rol spelen.
maar volledig eens met Janoz. Waardes die Unique moeten zijn , als unique specificeren.
maar volledig eens met Janoz. Waardes die Unique moeten zijn , als unique specificeren.
ALs je inderdaad sqlserver gebruikt kan je dit gewoon in 1 stored procedure regelen:
Hier stukje uit stored procedure hoe ik het gedaan heb:
Selecteer hier record om te kijken of het bestaat
IF @@ROWCOUNT = 0
Begin
Doe hier je insert
End
Hier stukje uit stored procedure hoe ik het gedaan heb:
Selecteer hier record om te kijken of het bestaat
IF @@ROWCOUNT = 0
Begin
Doe hier je insert
End
Pagina: 1