Zitat von
marabu:
Hallo,
du hast vergessen die Stelle zu bezeichnen, an der der Fehler auftritt.
Außerdem scheint es so, als ob du versuchst ein feature der
ADO-Komponenten nachzubilden: Parameter. Statt des Dollarzeichens verwendest du dann einen Doppelpunkt:
Delphi-Quellcode:
const
SQL_SEL_ACCTS
= '
SELECT iid, domain, user_account '
+ '
FROM DWWinUserID '
;
SQL_SEL_USER
= '
SELECT name, password, guid, settings, active '
+ '
FROM DWUser WHERE name = :benutzername '
;
SQL_UPD
= '
UPDATE DWUser SET settings = :xml '
+ '
WHERE name = :benutzername '
;
Die durch den Doppelpunkt markierten Parameter werden dir in der Eigenschaft Params einer DataSet-Komponente zur Manipulation angeboten. Ein Beispiel von vielen zum Umgang mit Params findest du z.B. hier:
klick
In deinem konkreten Fall könnte der
XML Parser direkt aus einem BlobStream lesen und dort auch wieder hin schreiben. Dabei könnten dir die Funktionen
LoadDocument() und
SaveDocument() helfen.
BTW: "name" ist kein besonders gut gewählter Name für eine Spalte.
Freundliche Grüße
Hey
Der Fehler tritt im Ausführungsmoment auf (ExecSQL). Ich befürchte der
XML String ist zu lang um den in einen
SQL Update einzubetten. Ist das möglich?
Wie ich
ADO Parameter verwende weiss ich und verwend ich auch ab und zu. Aber nicht in diesem Fall wo es sich um ein einfaches Projekt handelt. So ist diese Lösung für mich die einfachere und naheliegendere.
Den Spaltennamen "name" ist nicht nach meinem Wunsch so getauft worden. Dies hat die Herstellerfirma der Software so gemacht und ist somit nicht in meinem Einflussbereich. Ich muss damit arbeiten obs schlau ist oder nicht.