Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vad är fel på denna procedur

Postades av 2005-08-11 23:25:56 - Tyronne Engström, i forum sql-server/msde, Tråden har 2 Kommentarer och lästs av 631 personer

Hej!

Jag har en SP som inte vill fungerar. Det som händer är att den inte skriver ner alla värderna i databasen

Själva funktionen är så att jag skapar en tävling där man skall ange sitt namn och epost adress. Sedan skall man ange 6 st epostadresser till som det skall skickas ut en inbjudan till tävlingen. ALla adresser skall sparas ner i en tabell oc detta har jag löst med nedan SP.

Så är skall SP fungera

1. I vanlig ordning tar den in variablarna
2. Sedan deklarerar jag några egna variablar som skall verka inom proceduren
3. Sedan sätter jag NewID till en Guid och skapar den
4. Sedan gör jag en sökning i huvudtabellen om det finns någon post med angiven epostadress redan sparad. detta för att förhindra dubletter. Värderna för sökning sparar jag i @ID oc i @tmpEmail
5. Sedan gör jag en kontroll om ID är tomt (NULL) skall avsändaren av mailet sparas ner i huvudtabellen annars skall ID numret användas för att spara ner de 6 adresserna till en skundärtabell där ID är kopplingen mellan dem. Detta görs med att @NEWID sätts till @ID, dvs det hittade id i huvudtabellen
6. Sedan sparas alla de 6 mailen ner i sekundärtabellen
7. Sedan skall avsändaren uppdateras i huvudtabellen så att statistik lagras på honom för utvärdering.


Fel som finns:

I huvudtabelln sparas inget ner och det finns inga poster i den tabellen. Så om IF satsen fungerat skulle användaren sparas ner i huvudtabellen.

I skundärtabellen sparas bara epostadresserna ner. Inget ID från användaren lagras.


Hoppas att ni kan utläsa vad jag vill ha gjort och hur det skall fungera.


<code>

ALTER Procedure AddContest
-- Parametrar

@SendName varchar(50),
@sendMail varchar(50),
@Email1 varchar(100),
@Email2 varchar(100),
@Email3 varchar(100),
@Email4 varchar(100),
@Email5 varchar(100),
@Email6 varchar(100)



AS
SET NOCOUNT ON
-- Deklarerar variablerna
Declare @ID uniqueidentifier
Declare @EID uniqueidentifier
Declare @tmpEmail Varchar(100)
Declare @NewID uniqueidentifier

-- Skapar ett nytt ID
SET @NewID = NEWID()

-- Kontrollerar om avsändaren redan finns annars skapas en ny.
Select @ID = ID, @tmpEmail = Email from tbl_Contest where email= @sendMail

-- Om användaren inte finns så skapas han, annars sätts hans id med @NewID
IF @ID = Null
BEGIN
Insert into tbl_Contest (ID, Name, email, regtime, NrOfAdress, nrOfSends)
values (@NewID, @SendName,@sendMail,GETDATE(),0,0)
END
SET @NewID = @ID
-- Första mailet --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email1)

-- Andra --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email2)

-- Tredje --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email3)

-- Fjärde --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email4)

-- Femte --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email5)

-- Sjätte --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@NewID,@Email6)

-- Uppdaterar använadren med antalet skickade mail
UPDATE tbl_Contest Set NrOfAdress = NrOfAdress + 6, nrOfSends = nrOfSends + 1 WHERE ID = @NewID

</code>

/tyronne


Svara

Sv: Vad är fel på denna procedur

Postades av 2005-08-11 23:35:02 - Andreas Hillqvist

Du kan se om det här hjälper:
<code>
ALTER Procedure AddContest
-- Parametrar

@SendName varchar(50),
@sendMail varchar(50),
@Email1 varchar(100),
@Email2 varchar(100),
@Email3 varchar(100),
@Email4 varchar(100),
@Email5 varchar(100),
@Email6 varchar(100)



AS
SET NOCOUNT ON
-- Deklarerar variablerna
Declare @ID uniqueidentifier
Declare @EID uniqueidentifier
Declare @NewID uniqueidentifier

SET @ID = NULL

-- Kontrollerar om avsändaren redan finns.
SELECT @ID = ID
FROM tbl_Contest
WHERE email= @sendMail

-- Om användaren inte finns så skapas han, hans id sätts till @NewID
IF (@ID IS Null)
BEGIN
-- Skapar ett nytt ID
SET @NewID = NEWID()

INSERT INTO tbl_Contest (ID, Name, email, regtime, NrOfAdress, nrOfSends)
VALUES (@NewID, @SendName,@sendMail,GETDATE(),0,0)

SET @ID = @NewID
END

-- Första mailet --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email1)

-- Andra --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email2)

-- Tredje --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email3)

-- Fjärde --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email4)

-- Femte --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email5)

-- Sjätte --
INSERT INTO tbl_Contest_Data (ID,Email)
VALUES (@ID,@Email6)

-- Uppdaterar använadren med antalet skickade mail
UPDATE tbl_Contest SET NrOfAdress = NrOfAdress + 6, nrOfSends = nrOfSends + 1
WHERE ID = @ID
</code>


Svara

Sv:Vad är fel på denna procedur

Postades av 2005-08-12 20:10:53 - Tyronne Engström

Som vanligt Andreas så tackar jag för hjälpen. Funkade perfekt och jag ser vad du har ändrat, lagt till

/tyronne


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 742
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies