webForumDet fria alternativet

En fråga till bara??

ASP

7 svar · 342 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

jag har så här för att se om ett lag finns med i en till tabel:

strSQL4 = "SELECT * FROM serie WHERE Lag = " & "'" & Request.Form("Bortalag") & "'" &" AND Klass =" & "'" & Request.Form("Klass") & "'" &" AND Grupp = " & "'" & Request.Form("Grupp") & "'" &";"
	Response.Write strSQL4
	Set rs = con.Execute(strSQL4)
	if rs.EOF then
	Set rs = nothing
	strSQL5 = "INSERT INTO Serie(Lag, Grupp, Klass) VALUES(" & "'" & Request.Form("Bortalag") & "'" & ",  " & "'" & Request.Form("Grupp") & "'" & ",  " & "'" & Request.Form("Klass") & "'" & ")"
	Response.Write strSQL5
	Set rs = con.Execute(strSQL5)
	end if

och om det inte finns med ska det automatiskt läggas in....men jag får följande medelande:

Microsoft JET Database Engine error '80004005' 

De ändringar du begärde i tabellen utfördes inte eftersom de skulle ha skapat dubbletter i index, primärnyckel eller relation. Ändra data i det eller de fält som innehåller identiska data, ta bort indexet eller definiera om indexet så att det tillåter dubbletter. Försök därefter igen. 

/Test/match3.asp, line 90

när jag skriver ut SQL:en får jag följande:

SELECT * FROM serie WHERE Lag = 'Digers' AND Klass ='P-90' AND Grupp = '1';
för den första

INSERT INTO Serie(Lag, Grupp, Klass) VALUES('Digers', '1', 'P-90')

för den andra

var för försöker han lägga in det ändå.?? :q :q

------------------
there is no i in orgasm
när du vill träffa
andra

[Redigerat av icaaq den 22 mar 2001]

Medlem sedan feb. 20005 891 inlägg
#2

Har du nån räknare i tabellen?

------------------
"bättre att ha flyt än illa fäkta"

Medlem sedan okt. 20005 273 inlägg
#3

nej...kanske skulle ha det men det borde ju funka så där ändå...... :q

------------------
there is no i in orgasm
när du vill träffa
andra

Medlem sedan dec. 200012 464 inlägg
#4

Det hänger ihop med hur din tabell ser ut. Vilka kolumner är primärnycklar ? Har du satt att någon kolumn skall vara unik?

(Fråga mig inte hur man kan få fram den informationen via Access, utan det får någon annan svara på. )

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 20005 273 inlägg
#5

Nu har jag satt in en räknare...
så här ser tabellen ut

-ID (primärnyckel)
-Lag
-Grupp
-Klass

------------------
there is no i in orgasm
när du vill träffa
andra

Medlem sedan juli 20003 825 inlägg
#6

Set rs = con.Execute(strSQL5)

Från första posten på tråden. Byt till:

con.Execute(strSQL5)

---
Set rs = ... osv använder du bara om du vill loopa genom och skriva ut x antal poster, då förslagsvis med en "SELECT * FROM users WHERE admin = TRUE ORDER BY lastname" typ...

------------------
"Never underestimate your opponents." - Name the movie.

Medlem sedan juli 20003 825 inlägg
#7

Jag tänkte på det... det är i ärlighetens namn ingen hellyckad lösning du har. Även att den per definition fungerar så finns det faktiskt inget som säger att man inte hackar in en kombination som redan finns.

Typ om jag skriver MIF men det står Malmö IF så kan ju samma lag komma med två gånger. Alternativt om man stavar fel på något lag.

---
Så här hade jag gjort. Jag gillar att använda drop down menyer och sedan hänvisa till ID nummer snarare än namn. Jag vet, extremt jobbigt... men det blir aldrig fel.

Välj bortalag [dropdown] OK
Välj hemmalag [dropdown] OK
Välj klass [dropdown] OK
Välj grupp [dropdown] OK

Det här är ju inte kåd vi snackar längre utan userinterface, användargränssnitt. Med ett läckert användargränssnitt blir det ALDRIG fel! :-)

Givetvis kan man inte välja sitt eget lag att spela mot, man kan inte heller välja lag som man redan spelat mot osv.

Tanke tar tid!

------------------
"Never underestimate your opponents." - Name the movie.

Medlem sedan okt. 20005 273 inlägg
#8

som det är just nu kommer jag själv lägga in alla lag och matcher så det senare problemet kommer inte att uppstå....men om detta funkar så kommer jag att utveckla detta system ytterligare. men jag har lite funderingar från detta:

Set rs = con.Execute(strSQL5)
Från första posten på tråden. Byt till:

con.Execute(strSQL5)

---
Set rs = ... osv använder du bara om du vill loopa genom och skriva ut x antal poster, då förslagsvis med en "SELECT * FROM users WHERE admin = TRUE ORDER BY lastname" typ...

deta är ju precis det jag vill göra i den första SQL:n men i den andra har du rätt.

men annars är det väl rätt tänkt att först kolla om det laget i den gruppen och klassen finns och om det inte finns med så läggs det in....

------------------
there is no i in orgasm
när du vill träffa
andra

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)