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


Felsöka SQL datbas

Postades av 2004-06-11 10:53:02 - Johan Agorelius, i forum sql-server/msde, Tråden har 36 Kommentarer och lästs av 1327 personer

Jag skall konstuera ett program som ligger och söker igenom en SQL databas efter vissa fel, och sedan genererar en felrapport som ett mail.

Hur kan jag bäst göra detta!
Fungerar det med ett script?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-13 08:16:48 - Mikael Wedham

Schemalägg ett DTSPaket.
Det hade jag gjort.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-13 23:20:54 - Johan Agorelius

vad är ett DTSPaket?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 09:21:45 - Mikael Wedham

Det är ett "script" som körs inuti DTS (i Enterprise Manager)

Så fort du har en SQL Server har du en DTS installerad.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 09:22:52 - Johan Agorelius

Vart hittar jag detta?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 09:24:16 - Mikael Wedham

Start - Program - Microsoft SQL Server - Enterprise Manager

Sen hittar du DTS under fliken Data Transformation Services

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 09:29:58 - Johan Agorelius

Ok, nu sitter jag inte vid datorn där SQL servern ligger dock, måste jag det?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 09:37:54 - Johan Agorelius

Kan man köra t.ex. asp script där?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-14 12:29:33 - Mikael Wedham

VBScript funkar.

Du måste ha Enterprise Manager, men inte sitta lokalt.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-16 20:29:41 - Johan Agorelius

Kan ett sådant script kontrollera inkommande frågor till databasen?

Alltså kan man använda ett script för att kontrollera att data som skall sättas in i databasen är korrekt
och kanske t.om. hindra instättning i databasen om datat inte är korrekt?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-16 23:02:43 - Johan Olsson

Hejsan

Vad är det egentligen du försöker göra ?

/Johan


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 00:04:32 - Johan Agorelius

En mycket stor produkt och kunddatabas används av väldigt många.
Data läggs till i databasen ifrån en mängd olika system, och ibland läggs felaktiga värden in.
Jag skulle vilja kontrollera att endast giltiga värden läggs in.
Om någon försöker lägga in ett ogiltigt värde skall detta helst hindras, eller iaf raporteras.

Jag vill alltså helst "fånga" datat inann det läggs till databasen, eller precis när det gör det!!
Är detta möjligt?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 07:02:10 - Johan Olsson

Triggers låter ju som en bra idé, vet ju inte om det är många tabeller som ska kontrolleras men det funkar väl ?

Överblicken blir lite si o så när det kan vara flera tabeller som uppdateras med "samma SQL".

Hur kommer datat in i servern - är det via direkta SQL-satser, procedurer, replikeringar eller kanske fil-importer ?

/Johan


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 07:28:51 - Johan Agorelius

Jag vet faktiskt inte hur datat kommer in i servern. Skulle tro att det är direkta SQL satser,
men som sagt det är en rad olika system som lägger till eller uppdaterar poset i databasen,
och det skulle inte förvåna mig om de verkar på olika sätt.
Hur kan jag ta reda på det?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 08:34:22 - Mikael Wedham

Då kan du försöka logga med SQL Profiler.

Ja, den bör man köra lokalt på servern.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 08:53:29 - Johan Agorelius

Kan man använda SQL profiler till att förhindra att data skrivs till databasen (om den inte uppfyller vissa vilkor, t.ex. angivna i ett script)?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 09:00:54 - Johan Agorelius

Vart får jag tag på SQL profiler?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 09:07:00 - Johan Agorelius

Ok det ingår i SQL server.
Är det i SQL profiler man bör göra all kontroll av inkommande data istället
för i Enterprise Manager?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 09:25:10 - Johan Olsson

Profilern visar (mer eller mindre i realtid) vad som pågår i servern.

Kolla triggers : varje tabell kan ha "programsnuttar" som körs vid insert, update och delete.


Måste du validera många tabeller/fält ?

Är det här ett projekt för att få alla applikationer att göra rätt eller ska "försvaret" ligga aktivt jämt ?
Finns ju ofta en logg att undersöka annars - där ser man ju vad som hänt.

/Johan


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 09:52:17 - Johan Agorelius

Projektet skall få alla applikationer att göra rätt.

T.ex. läggs poster till med ogiltiga Produkt ID,
detta skall inte kunna ske.
Men då ett stort antal olika typer av applikationer som gör dessa insättningar,så blir det omöjligt att göra kontrollen där.

Kontrollen måste alltså ske på SQL servern,
Är detta ens möjligt?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 10:21:05 - Mikael Wedham

Det låter som om databasen (databaserna) skulle behöva lite primärnycklar och främmande nycklar istället.

Vad händer med klienten om servern vägrar att ta emot ett värde? Kommer inte den klaga då? Då måste du ju ändå skriva om klienten så den tar hand om detta.

Annars lutar det mest åt triggrar, som nämnts innan. En kodsnutt som fångar upp det som lagts in, validerar och (förhoppningsvis) godkänner inmatningen. Vid misslyckad validering genereras fel, som klienten måste ta hand om.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 11:17:26 - Johan Agorelius

Det handlar inte om värden som databasen inte kan ta emot utan värden som
jag vet är fel, t.ex. så ska kanske prodID bara kunna vara 3 om Lokation är 5 osv..

Det där med triggrar verkar intressant,
skulle du kunna förklara lite mer om hur det fungerar?
(eller ge mig en länk vilket är så populärt)


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 15:51:42 - Mikael Wedham

En trigger är kod som körs automatiskt.

Låt oss säga att du inte tillåter värdet 'Sill' i [product] fältet.
Då kan du göra ungefär såhär:

CREATE TRIGGER [bongo] ON Produkttabellen
FOR INSERT,UPDATE --Den går igång på Inserts och updates...
AS
IF (SELECT [product] FROM inserted) = 'Sill'
BEGIN
RAISERROR ('Sill är inte tillåtet',16 ,1)
ROLLBACK TRANSACTION
END
GO


Försöker du nu inserta eller ändra en rad till 'Sill', så får du ett fel.
Dessutom går ändringen inte igenom.

OBS!!!!!!
Om du kör med egendefinierade transaktioner (MTS/COM+/ADO) så kommer
ROLLBACK ställa till det för dig. Då skippar du bara den...
Nu är det upp till din fantasi att tillåta eller inte tillåta värden.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 16:49:24 - Johan Agorelius

Låter precis som det jag behöver!
Något jag får läsa på lite dock!

Jag skall göra detta på en SQL server,
vart lägger jag till de här trigger scripten?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 16:55:43 - Johan Agorelius

Kan error meddelandet skickas ut till alla olika applikationer
som använder databasen?
Det är allt ifrån webbapplikationer, automatiska kontrollprogram och gamla terminaler som lägger till poster i den här sql servern!


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 19:58:53 - Per Karlsson

Ja, felmeddelanden från SQL Server går tillbaka till den som ställde frågan.

Jag tror att ett alternativ till att använda triggers skulle vara Check Constraints på tabellerna. Dessa används just till att kontrollera data som läggs in i den aktuella tabellen.


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-17 23:24:40 - Johan Agorelius

Kan man då direkt i databasen ange villka vilkor som måste uppfyllas för de olika fälten,
Stödjer SQL server dett?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-18 07:33:13 - Johan Agorelius

Har du nån länk till någon bra tutorial?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-18 10:25:21 - Mikael Wedham

<Kan man då direkt i databasen ange villka vilkor som måste uppfyllas för de olika fälten,
<Stödjer SQL server dett?

Ja, naturligtvis ;)

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-18 14:15:11 - Per Karlsson

Det är inte så mycket att lära sig med check constraints. Nedanstående länkar visar nästan allt man behöver veta. Kolla annars MSDN.

http://www.databasejournal.com/features/mssql/article.php/2219901

http://www.aspfree.com/c/a/Database-Code/Constraints-In-Microsoft-SQL-SERVER-2000/7/


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 19:52:00 - Johan Agorelius

Det verkade inte som om SQL server 200 stödjer "User Defined Constraines", vilket ju är det jag skulle behöva använda för att implimentera mina sepcifika affärsregler.

Datat som inte "passar" constriansen nekas alltså att sättas in i databasen, men går det t.ex. något felmeddelande tillbaka till den applikation som försökte göra instättningen?


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 20:15:53 - Mikael Wedham

SQL Server stödjer visst constraints:

DEFAULT
PRIMARY KEY
FOREIGN KEY
UNIQUE
CHECK

Dessa stödjs enligt ANSI standarden. Kolla i SQL BOL, efter syntaxen.

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 20:36:06 - Per Karlsson

Bryter man mot ett Constraint så genererar SQL Server ett felmeddelande (t.ex. Violation of Check Constraint). Applikationen som anropar databasen får tillbaka detta felmeddelande och lämpligtvis implementerar man en felhanteringsfunktion som visar felet för användaren på ett snyggt sätt.


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 21:06:28 - Johan Agorelius

Ja det såg jag, det jag menade var att den inte verkar stödja "user defined" constraines, vilka är sådana constraines där man själv anger affärsregler för vad som är godtagbara data!
DEFAULT, PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK innefattar (såvitt jag förstår det) constraines för intrevall på värden, se till att celler ej är null, se till att värdne är unika samt se till att realtioner mellan tables bibehålls.



Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 22:20:09 - Mikael Wedham

Och vad kan du mer begära???

<constraines för intrevall på värden, se till att celler ej är null, se till att värdne är unika samt se till att <realtioner mellan tables bibehålls.

Detta täcker (enligt mig) in 99.99% av all data som finns, eller behövs kontrolleras.
Berätta vad du vill kolla, så kan vi visa dig hur det skall göras. Detaljerade frågor får detaljerade svar. Du har bara frågat OM det funkar. Ja är svaret :)

/micke


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 22:52:24 - Johan Agorelius

Ok, ett fält innehåller ålder, ett fält inehåller födelsedatum ett fäl innehåller det datum då posten lades till. Jag vill kontrollera att åldern stämmer m.a.p födelsedatum och det datum då posten lades till.

Tyvärr har jag ingen möjlighet att ändra på applikationen som lägger till posten, då det ju är där man borde åtgärda det.


Svara

Sv: Felsöka SQL datbas

Postades av 2004-06-20 23:17:23 - Per Karlsson

Här är ett förslag på Check Constraint:

<CODE>
datediff(day, DateAdd(Year, Age, BirthDate), EntryDate) >= 0
AND
datediff(day, DateAdd(Year, Age, BirthDate), EntryDate) < 365
</CODE>

Detta fungerar, men det kan bli randproblem vid skottår. Om man tycker att detta är ett problem, kan man bygga ut villkoren...

/Pelle


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 570 557
27 958
271 741
346
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
Expand
next previous
Close

Previous

0/0

Next