Einzelnen Beitrag anzeigen

Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Prepare bei Insert und nchar

  Alt 21. Mär 2013, 11:39
Datenbank: MS SQL • Version: 2008 • Zugriff über: UniDac 4.6.11
Hallo ,
ich habe ein Problem mit einem Insert.

Folgender Code funktioniert:

Delphi-Quellcode:
FQuery.SQL.Text := 'INSERT INTO TEST_ZV.dbo.Tool (Name) VALUES (:_Name);';
FQuery.ParamByName('_Name').AsString := Name;
FQuery.Prepare; // <== nach Params...
FQuery.Execute;
Folgendes funktioniert nicht:

Delphi-Quellcode:
FQuery.SQL.Text := 'INSERT INTO TEST_ZV.dbo.Tool (Name) VALUES (:_Name);';
FQuery.Prepare; // <== vorParams...
FQuery.ParamByName('_Name').AsString := Name;
FQuery.Execute;
Beim Insert bekomme ich diese Fehlermeldung:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt TESTZV.exe ist eine Exception der Klasse EMSError mit der Meldung 'Anweisung(en) konnte(n) nicht vorbereitet werden.
Die implizite Konvertierung vom sql_variant-Datentyp in nchar ist nicht zulässig. Verwenden Sie die CONVERT-Funktion, um diese Abfrage auszuführen.' aufgetreten.
---------------------------
Anhalten  Fortsetzen  Hilfe  
---------------------------
Wie kann ich dem an der Stelle den Datentyp mitgeben? Wenn ich später mehrere Einträge machen möchte, dann muss ich das Prepare ja vor der Parameterübergabe aufrufen. Mit anderen Datentypen (integer, double) funktioniert es.

Danke schon mal.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat