Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MSSQL Feld einer Tabelle für andere Zugriffe sperren geht das?

Frage Entwicklung Datenbanken

Mitglied: Tomate007

Tomate007 (Level 1) - Jetzt verbinden

30.07.2007, aktualisiert 31.07.2007, 5883 Aufrufe, 4 Kommentare

Hallo,

ich suche eine Möglichkeit ein Feld für andere Zugriffe zu sperren außer für den Zugriff der den Befehl zum sperren gibt.

Also mal ein Beispiel.

Ich habe eine Tabelle:

CountryId char(2)
RefId char(30)
Start int
End int
value int.

nun möchte ich den Inhalt von value wo CoutnryId = 12 und RefId = 22 dieser Wert aus Value wird dann durch mein Programm verändert und wieder in value gespeichert. Erst dannach wird das Feld wieder freigegeben für andere Zugriffe. Das ist meine Vorstellung. Also Kurzform:

Feld value (wo CountryId = 12 AND RefId = 22) für andere Benutzer sperren.
Inhalt von value (wo CountryId = 12 AND RefId = 22) auslesen
Inhalt von value (wo CountryId = 12 AND RefId = 22) ändern
Inhalt in value (wo CountryId = 12 AND RefId = 22) abspeichern
value (wo CountryId = 12 AND RefId = 22) wieder für andere zugriffe freigeben.

Ist dies mit einer MSSQL-Datenbank möglich?? wenn ja könnte mir einer erklären wie es geht?

Ich danke im Vorraus...

MFG
Andre
Mitglied: AndreasHoster
30.07.2007 um 16:46 Uhr
Ja geht.
Erklären, nun ja, ginge schon, wäre aber etwas sehr aufwendig.
Schon mal was von Transaktionen gehört? Wäre hilfreich.
Und wie, mit welcher Programmiersprache soll das stattfinden? Direkt ein Transact SQL Programm auf dem Server oder doch eher eine VisualBasic Anwendung die per DAO oder ADO zugreift? Je nachdem muß man die Parameter anders / woanders angeben.

Insgesamt ist die Sperrlogik des SQL Servers auch nicht was, was man in 2 Minuten erklärt.
Aber falls Du selber in der SQL Hilfe noch lesen willst, Stichworte wären:
Isolationsstufen, Transaktionen, Sperren
Bitte warten ..
Mitglied: Tomate007
31.07.2007 um 08:13 Uhr
Auf dem Server läuft Delphi welches den Zugriff auf den SQL-Server steuert und das Value dann halt modifiziert.....

Also es is ne ISAPI von Delphi welches dann halt auf die Datenbank zugreift....

Ich hatte jetzt sowas gehofft wie als wenn es nen SQL befehlt zum sperren gibt und einen zum entsperen... weil dann könnte ich das so machen:

SQL SPERREN value where CountryId = 12 AND RefId = 22
SQL SELECT value where CountryId = 12 AND RefId = 22
Bearbeitung im Programm(Delphi)
SQL UPDATE Table value= 'neuer wert' where CountryId = 12 AND RefId = 22
SQL ENTSPERREN value where CountryId = 12 AND RefId = 22

Ist das nicht so einfach durch sql befehle möglich ?!

mmh wie die Datenbankverbindung hergestellt wird ich glaube über ODBC, muss ich nochmal meinen Ausbilder fragen.


EDIT1:
Also ich hab jetzt mal google befragt zu deinen Suchbegriffen habe auch sehr viel Text gefunden es auch gelesen aber ich versteh nur Bahnhof und Kofferklaun..... wäre es möglich das du auf mein Beispiel hier mir ein Beispiel zur sperrung der Datenbank schreibst?? weil wenn ich dann einmal nen Beispiel habe kann ich es auch leichter verstehen. Danke
Ende EDIT1

Danke für die Hilfe

MFG
Andre
Bitte warten ..
Mitglied: AndreasHoster
31.07.2007 um 08:59 Uhr
Ja, ja und dann stürzt das Programm ab und die Sperre bleibt ewig.
Nein, solche Sperren haben eine maximale Gültigkeit über eine Transaktion und wie man das mit Transaktionen macht ist von Programmiersprache zu Programmiersprache unterschiedlich.
Und Delphi ist jetzt nicht meine Programmiersprache.
Außerdem gibts verschiedene Stufen von Sperren (oder im SQL Jargon Isolationsstufen), je nachdem was alles vermieden werden soll. Bei Mehrbenutzersystemen ist es nämlich tödlich zuviel zu sperren, weil dann Wartezeiten und Deadlocks extrem zunehmen.

Unter VB lese ich die Zeile mit OpenRecordset(Select ...,,,) aus und kann im OpenRecordset Befehl sagen, wie gesperrt werden soll (dabei macht VB die Transaktionen implizit, ohne daß ich noch was machen muß) wenn man in den Edit Modus wechselt. Nehme mal an, Delphi kann sowas auch.
Bitte warten ..
Mitglied: Tomate007
31.07.2007 um 13:46 Uhr
Also ich hab jetzt nochmal genau nachgefragt...

Ich soll nichts in Delphi oder so programmieren sondern...

Ich soll eine Transact-SQL Prozedur auf dem MS-SQL-Server programmieren welche dann mit Execute und den 3 variablen (CountyId,RefId,neuer value wert) aufgerufen wird. Nun ist es schlimmer als erwartet und ich habe mir einfach mal die vorhandenen Systemprozeduren angesehen und verstehe nur Bahnhof und Kofferklauen. Das hab ich auch meinen Ausbilder gesagt aber der meinte ich soll es versuchen und nun steh ich da... kann mir einer nen gutes Tutorial zum Prozeduren programmieren auf einen MS-SQL-Server nennen??


MFG
Andre
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View
gelöst Frage von SnuffchenDatenbanken3 Kommentare

Hallo zusammen, kann man beim MSSQL-Server eine Benutzer so mit Rechten ausstatten, dass er nur auf 2 definierte Tabellen ...

Datenbanken
MySQL - Feld aus anderer Tabelle hinzusummieren?
gelöst Frage von 1410640014Datenbanken5 Kommentare

Hallo, habe ein banales Problem und bin leider mit JOINS nicht gut bewandert. zwei simple Lagertabellen mit den Felder: ...

Windows Server
Öffentlicher Ordner - Wie kann ich den Zugriff sperren?
Frage von NeuerOFRWindows Server9 Kommentare

Hallo, bei uns gibt es Spezialisten die ihre Dateien gerne mal im Öffentlichen Profil (Public-Folder) unter Dokumente / Bilder ...

Datenbanken
MySQL Daten in Tabelle A und AUTOINCREMENT-Feld als Schlüsselgenerator in Tabelle B
Frage von CodehunterDatenbanken3 Kommentare

Hallo! Ich möchte eine Tabelle (B) mit einer einzigen Spalte, welche ein AUTO_INCREMENT ist, als Schlüsselgenerator für eine andere ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing7 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...