des GildenMeisters in der Datenbank zeitlich zu begrenzen, habe ich
kurz drüber geschaut und wollte es mit euch Teilen - Because Sharing is Caring!
Leider weiß ich nicht in welchem Server (Zone, WM, Whatever) die
Prozedur gecallt wird, deswegen kann ich euch leider nicht sagen, wie Ihr die
Meldung "Meister kann nur alle xx geändert werden" angezeigt bekommt.
Naja okay - let's do it.
Kurzer Hinweiß:
Ich habe KEINEN Server, daher konnte ich das ganze nicht genaustens
Testen. Die Prozedur ansicht funktioniert hervorragend.
Sollten dennoch fehler auftreten bitte Ich euch diese direkt
zu melden, damit sie gefixt werden können!
__________________________________________________ ___________________
Zuerst verbindet ihr euch mit SQL Management Studio zu eurer Datenbank und
öffnet dort die xxx_Character DB.
Sobald Ihr diese Datenbank geöffnet habt, klickt ihr Oben Links im SQLMMS
auf "New Query" / "Neue Abfrage".
Dort fügt ihr folgendes ein:
Code:
/*
Sonntag, 13. Juli 201416:38:46
User: iKasu
Server: (local)\DreckigeFiestaDB
Database: w00_Character
Application:
*/
/* To prevent any potential data loss issues, you should review this script in detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.tGuild ADD
dMasterChange datetime NOT NULL CONSTRAINT DF_tGuild_dMasterChange DEFAULT ('2000-01-01 00:00:00.000')
GO
ALTER TABLE dbo.tGuild SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
dMasterChange hinzugefügt. Diese wird später verwendet um festzustellen,
wann der letzte Meister geändert wurde.
Bevor wir diese Abfrage ausführen, stellt sicher, dass Ihr die
xxx_Character Datenbank ausgewählt habt (Im Bild das Grüne).
Wenn alles passt, einmal F5 oder auf "Execute Query" / "Abfrage ausführen" klicken.
Nun solltet ihr Unten bei "Message" / "Ausgabe" folgendes stehen haben:
Fals ihr einen Fehler bekommt, das die Datenbank aufgrund von Sicherheitseinstellungen
nicht geändert werden kann, schaut unten im FAQ!
Sobald diese Abfrage ausgeführt ist, öffnet in der Character DB die Gespeicherten
Prozeduren. (Programmierbarkeit -> Gespeicherte Prozeduren)
Dort sucht ihr nach der Prozedur: dbo.p_Guild_Member_SetGrade
Bei dieser Prozedur macht Ihr ein rechtsklick drauf und klickt auf "Ändern".
Nun solltet ihr auf der rechten Seite die Prozedur sehen.
Da ich wie bereits gesagt eine andere Datenbank haben könnte, merkt euch
bitte die ERSTE! Zeile der Prozedur.
Im Bild wäre das bei mir "USE [World00_Character]"
Nun ersetzt Ihr die gesamte Prozedur mit:
Code:
USE [CHANGEME] GO /****** Object: StoredProcedure [dbo].[p_Guild_Member_SetGrade] Script Date: 07/13/2014 15:53:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[p_Guild_Member_SetGrade] /* Set Guild Member Grade 2006.2 By CJC Input: See SQL Output: nRet = 0, Error nRet = 1, OK */ @nNo int, @nCharNo int, @nGrade tinyint, @nRet tinyint output AS SET NOCOUNT ON SET @nRet = 0 IF @nGrade = 0 BEGIN IF DATEDIFF(hour, Convert(DateTime, (SELECT dMasterChange from tGuild WHERE nNo = @nNo)), GETDATE()) < 24 BEGIN SET @nRet = 0 RETURN END ELSE BEGIN UPDATE tGuild SET dMasterChange = GETDATE() WHERE nNo = @nNo SET @nRet = @@ROWCOUNT IF @@ERROR <> 0 OR @@ROWCOUNT <> 1 BEGIN SET @nRet = 0 RETURN END ELSE BEGIN UPDATE tGuildMember SET nGrade = @nGrade WHERE nNo = @nNo AND nCharNo = @nCharNo SET @nRet = @@ROWCOUNT IF @@ERROR <> 0 OR @@ROWCOUNT <> 1 BEGIN SET @nRet = 0 RETURN END END END END ELSE BEGIN UPDATE tGuildMember SET nGrade = @nGrade WHERE nNo = @nNo AND nCharNo = @nCharNo SET @nRet = @@ROWCOUNT IF @@ERROR <> 0 OR @@ROWCOUNT <> 1 BEGIN SET @nRet = 0 RETURN END END
ihr euch gemerkt habt.
In meinem bsp. wäre das: "USE [World00_Character]"
Sobald ihr die erste Zeile ersetzt habt könnt Ihr wieder einen klick auf
"Execute Query" / "Abfrage ausführen" machen oder F5 drücken.
Nun solltet ihr wieder die Meldug bekommen, dass das Script ausgeführt wurde.
Wenn das getan ist, seid Ihr damit fertig.
Nun sollte der Meister nurnoch alle 24h geändert werden können.
Fals Fragen diesbezüglich auftreten, schaut bitte in die FAQ.
Sollte eure Frage nicht beantwortet sein, schreibts in den Thread
__________________________________________________ ____________
__________________________________________________ _____________
FAQ:
Question: Ich bekomme einen Fehler wenn ich die erste Abfrage ausführen möchte
Question: Wie kann ich die Zeit einstellen?






, nur halt nicht so detailliert.