Ich kenne jemanden, der sich ab heute fünf Jahre keinen neuen Computer kaufen will.
Also ich bin es nicht.
Ich kenne jemanden, der sich ab heute fünf Jahre keinen neuen Computer kaufen will.
Also ich bin es nicht.
In Dänemark kann man zwar mit seiner (Sparkassen-)Maestro-Karte Geld vom Automaten holen und Tanken, jedoch in vielen Läden nicht bezahlen, weil die Dänen Mastercard benutzen.
In Dänemark kann man für 399 Kronen bei TDC einen UMTS-Stick erwerben und damit eine Woche lang surfen. Die Folgewoche kostet 149 EUR. Im TDC-Laden muss eine Nummer gezogen werden, damit man bedient wird.
Da hatte ich ein Problem: Beim herunterladen der Fotos von der Digitalkamera wurden alle Dateien mit Großbuchstaben übertragen. Bisher waren die Dateinamen jedoch klein geschrieben gewesen. Das hatte zur Folge, dass ich sehr viele Bilder in sehr vielen Verzeichnissen doppelt hatte (jeweils einmal mit großen und einmal mit kleinen Buchstaben.)
Unter Kubuntu 8.04 werden die Bilder mit kleinen Buchstaben angezeigt und unter Kubuntu 8.10 mit großen Buchstaben.
Was tun?
Zuerst einmal die groß geschriebenen Bilder anzeigen:
$ cd ~/Bilder/2009
$ ls -l ./*/*.JPG
Dann die großgeschriebenen Bilder Verschieben:
$ mv ./*/*.JPG /tmp/.
Hier erklärt jemand die MSSQL-Transactionen:
Tipp: Lade Dir den SQL2005 Express bei MS runter und schaue in die Online-Hilfe. Da findet sich fast alles.
Aus der Online Hilfe des SQL2000:
In SQL-92 werden die folgenden Isolationsstufen definiert, die auch von SQL Server unterstützt werden:
Commit muss vor Lesevorgang nicht ausgeführt sein (Read Uncommitted) (die unterste Stufe, auf der Transaktionen nur soweit isoliert werden, dass sichergestellt ist, dass keine physisch beschädigten Daten gelesen werden).
Commit muss vor Lesevorgang ausgeführt sein (Read Committed) (Standardstufe von SQL Server).
Repeatable Read.
Serialisierbare Isolationsstufe (Serializable) (die höchste Stufe, auf der Transaktionen vollständig voneinander isoliert werden).
Und der wichtigste zur Steuerung:
SET TRANSACTION ISOLATION LEVEL
Steuert das Standardsperrverhalten von Transaktionen für alle SELECT-Anweisungen von Microsoft® SQL Server™, die von einer Verbindung ausgegeben werden.
Syntax
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED
READ UNCOMMITTED
REPEATABLE READ
| SERIALIZABLE
}
Und unter siehe auch bei Expliziten Transaktionen finden sich:
BEGIN DISTRIBUTED TRANSACTION
BEGIN TRANSACTION
COMMIT TRANSACTION
COMMIT WORK
ROLLBACK TRANSACTION
ROLLBACK WORK
SAVE TRANSACTION
SET IMPLICIT_TRANSACTIONS
@@TRANCOUNT
Damit dürften wir die wichtigsten erledigt haben.
Ansonsten: http://msdn2.microsoft.com/en-us/library/ … (Controlling Transactions in SQL2005)
„Ja?“ rief Anno, „so war es die Abmachung! Euren Vorstellungen entsprechend sollte ich mich verhalten, jeden wichtigen Schritt mit euch abstimmen. Ich habe es gern getan.“
Instructions / Anleitung:
…nettes Blog-Spielchen
via oshelpdesk.org
Dieses Problem ist im www schon seit Jahren bekannt, nur mir noch nicht.
Ich arneite mit der Kombination Delphi und ADO und MS-SQL-Server. Zum Löschen eines Datensatzes habe ich einen Trigger gebastelt. Dieser löst jedoch bei der Ausführung folgende Fehlermeldung aus:
„Die Schlüsselinformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen“.
Die gewünschten Datensätze sind jedoch korrekt gelöscht. Alles funktioniert wunderbar, nur die Fehlermeldung nervt.
Hier wird von Andreas Kosch erklärt was schief läuft:
Wenn TADODataSet einen Datensatz löschen soll, wird das dahinterliegende RecordSet-Objekt (COM-Objekt von Microsoft) beauftragt, diese Aktion automatisch in eine SQL-Anweisung zu übersetzen. Wenn etwas automatisch übersetzt wird, ist es sinnvoll, eine Sicherheitsprüfung einzubauen – und diese Sicherheitsprüfung besteht in diesem Fall darin, die vom SQL Server zurückgelieferte Anzahl der betroffenen Datensätze auszuwerten. Das RecordSet-Objekt erwartet den Wert 1 für einen gelöschten Master-Datensatz. Wenn in der Datenbank allerdings Trigger automatisch Detail-Datensätze löschen, ist der Rückgabewert nur dann 1, wenn bei der letzten Aktion auch nur 1 Detail-Datensatz betroffen waren (der SQL Server liefert den Wert der letzten Aktion zurück).
Man könnte nun als Notbehelf in jedem Trigger die Anweisung SET NOCOUNT ON einfügen. oder aber die SQL-Anweisung nicht über ein TADODataset sondern über eine TADOCommand bzw. TADOQuery aufzurufen.
CREATE TRIGGER [stg_Besch_AD] ON [stg_Besch]
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
/* Hinweis auf Bescheid aus BeilisHis entfernen */
DELETE stg_BeilisHis FROM deleted, stg_BeiLisHis
WHERE deleted.ID = stg_BeiLishis.TGBESCH_ID;
/* Hinweis auf Bescheid aus Faellig entfernen */
DELETE stg_Faellig FROM deleted, stg_Faellig
WHERE deleted.ID = stg_Faellig.TGBESCH_ID;
/* Hinweis auf Bescheid aus Faellig entfernen */
DELETE stg_FaelligZ FROM deleted, stg_FaelligZ
WHERE deleted.ID = stg_FaelligZ.TGBESCH_ID;
END
Da hat HAL in seiner Sonntagskolumne wieder einmal ins Schwarze getroffen. wwww vom 12.10.2008
Im Linux-user.de wird erklärt, wie CUPS und Windows W2K/XP richtig zusammenarbeiten.
Wichtig für W2K
In CUPS einen Drucker einrichten: HL-1520
In CUPS eine Druckerklasse einrichten: druckerklasse
Diese Druckerklasse muss den Drucker HL-1520 enthalten.
Unter W2K kann der CUPS-Server nicht über eine IP-Adresse angesprochen werden. Deshalb muss in der Datei c:\winnt\system32\drivers\etc\hosts die Verknüpfung von Hostname zur IP-Adresse eingetragen werden:
192.168.1.8 c2008
In W2K einen neuen Netzwerkdrucker mit folgender Adresse anlegen:
http://c2008:631/classes/druckerklasse