Nu funkar det MEN.....om jag väljer tre personer i comboboxarna...då blir projektet registrerat TRE gånger, med olika id:n.......Vad är det då för fel?
------------------
.: Malin :.
24 svar · 275 visningar · startad av maland · sida 2 av 2
Happ! Då var det dags för en klurig fråga igen... Jag har tre comboboxar där man kan välja fler värden. Det blir ju krångel när jag ska insert i tabellen sedan... Låt säga att jag i SELECT name="S" väljer två värden(personid)... I SELECT name="U" väljer ett värde(personid) och i SELECT name="P" väljer fyra värden(personid)...Hur 17 får jag in det i tabellen sedan \------Tabell------- \PId (in
Läs frågan i sin helhet →Nu funkar det MEN.....om jag väljer tre personer i comboboxarna...då blir projektet registrerat TRE gånger, med olika id:n.......Vad är det då för fel?
------------------
.: Malin :.
SP:n ser ut såhär:
CREATE PROCEDURE sp_insert_2
@projektnamn varchar(50),
@foretagsnamn int,
@startdatum smalldatetime,
@slutdatum smalldatetime,
@status bit,
@roll int
AS
declare @newProjectID int
insert into projekt
(projektnamn, status, startdatum, slutdatum)
values
(@projektnamn, @status, @startdatum, @slutdatum)
set @newProjectID = @@identity
insert into deltagande_foretag
(foretagsId, projektId)
values
(@foretagsnamn, @newProjectID)
insert into projekt_medlemmar
(projektId, personId)
values
(@newProjectID,@roll)
GO
------------------
.: Malin :.
..och på ASP sida ser det ut såhär:
<%
for each element in request.form
if element = "sctProjLedare" or element = "sctUtvecklare" or element = "sctSaljare" then
for i = 1 to request.form(element).count
dbase.execute "Exec sp_insert_2 " & _
" @projektnamn = " & Request.Form("txtProjNamn") & "," & _
" @status = " & Request.Form("status") & "," & _
" @startdatum = '" & Request.Form("txtDatum") & "'," & _
" @slutdatum = '" & Request.Form("txtSlutdatum") & "'," & _
" @foretagsnamn = " & Request.Form("sctForetagsnamn") & "," & _
" @roll = " & request.form(element)(i)
next
end if
next
%>
------------------
.: Malin :.
Det var väl det jag sade i ett tidigare inlägg. Ett ytterligare alternativ är att du gör så här i din procedur
CREATE PROCEDURE sp_insert_2
@projektnamn varchar(50),
@foretagsnamn int,
@startdatum smalldatetime,
@slutdatum smalldatetime,
@status bit,
@roll int
AS
declare @newProjectID int
select @newProcjectID = projectID
from projekt
where projektnamn = @projektnamn
if @@rowcount = 0
begin
insert into projekt
(projektnamn, status, startdatum, slutdatum)
values
(@projektnamn, @status, @startdatum, @slutdatum)
set @newProjectID = @@identity
insert into deltagande_foretag
(foretagsId, projektId)
values
(@foretagsnamn, @newProjectID)
end
insert into projekt_medlemmar
(projektId, personId)
values
(@newProjectID,@roll)
GO
------------------
essentitia preter non sans multiplicandum
Oj, ursäkta *skäms*.
Jag trodde att du menade att jag skulle lägga in samma projekt flera gånger på sidan...
Nu funkar det iallafall! (efter att jag rättat ett stavfel som du hade gjort=)
1000 miljarder tack så mycket!!!
------------------
.: Malin :.