Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#1

ADODataSet.Open: Mal Fehler, mal nicht. Voraussetzung gleich

  Alt 26. Jul 2009, 17:01
Datenbank: MS SQL-Server • Version: 2000 • Zugriff über: ADO
Moin Zusammen,

ich habe einen TADODataSet, der wie folgt vorbereitet wird:
Delphi-Quellcode:
        LRSSelectTyp := TADODataSet.Create(nil);
        LRSSelectTyp.CommandText := 'SELECT ID FROM Typ WHERE Typ = :prmTyp';
        LRSSelectTyp.Parameters.ParseSQL(LRSSelectTyp.CommandText,true);
        LRSSelectTyp.ParamCheck := true;
        LRSSelectTyp.Connection := conMain;
Die Abfrage erfolgt dann mit (AsTyp ist ein Parameter vom Typ string):
Delphi-Quellcode:
        LRSSelectTyp.Parameters.ParamByName('prmTyp').Value := AsTyp;
        LRSSelectTyp.Open;
Die Spalte Typ hat den Datentyp varchar mit der Länge 50, ausserdem ist die Einschränkung UNIQUE für die Spalte aktiv.

Wenn AsTyp einen Leerstring enthält, bekomme ich eine Exception:
Zitat:
Die Datentypen text, ntext und image können nur mithilfe des Operators IS NULL oder LIKE verglichen oder sortiert werden.
Ich benutze den Code beim Einlesen von Dateien.

Was ich mir nicht erklären kann:
Es kann diverse Male ein Leerstring benutzt werden, ohne das die Exception auftritt.
Der Fehler tritt erst bei einer bestimmten Datei auf, wobei es aber keine Rolle spielt, ob ich mit der Datei anfange, oder ob sie erst später an die Reihe kommt.

Hat jemand eine Erklärung für dieses Verhalten?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat