![]() |
Re: Ideen für spezielle Stringbearbeitung
Erfolgserlebnis:
Delphi-Quellcode:
Danke für den Tipp marabu. Mithilfe von Parametern scheint sich das Problem in Luft aufgelöst zu haben. Ist mir zwar nicht klar warum, aber ok.
procedure Tfrmxml.btnmutClick(Sender: TObject);
const XPATH = '//Basket[%d]/@path'; XANZAHL = '//Baskets/@totalNumber'; var doc: IXMLDOMDocument2; n: IXMLDOMNode; sqltext:string; s:string; begin s:=chr(39); // Hochkomma // Briefkorb Pfad speichern if CreateDocument(doc, dbMemo1.Text) then begin n := doc.selectSingleNode(Format(XPATH, [strtoint(ednummer.text)-1])); n.nodeValue:=(edpfad.text); // sqltext:=stringreplace(sql_update_xml,'$benutzername',s+edbenutzername.text+s,[rfIgnoreCase]); // sqltext:=stringreplace(sqltext,'$xml',s+doc.xml+s,[rfIgnoreCase]); datamodule2005.ADOQuery3.SQL.Text:=sql_update_xml; datamodule2005.ADOQuery3.Parameters.ParamByName('xml').Value:=doc.xml; datamodule2005.ADOQuery3.Parameters.ParamByName('benutzername').Value:=edbenutzername.text; showmessage(datamodule2005.ADOQuery3.SQL.Text); datamodule2005.ADOQuery3.ExecSQL; end else ShowParseError(doc.parseError); end; Was ich noch ändern musste: doc.xml verwenden und nicht in Hochkomma in die DB setzen. |
Re: Ideen für spezielle Stringbearbeitung
Bei mir ist jetzt noch die Frage aufgetaucht:
Wenn ein Benutzer keinen Basket im XML definiert hat (totalNumber=0). Wie kann ich diesen dann eintragen/speichern/eröffnen? Hast du da ein Beispiel? Das wäre noch das Tüpfli auf dem i - wie wir in der CH sagen :) |
Re: Ideen für spezielle Stringbearbeitung
Sali,
luegsch emal:
Delphi-Quellcode:
Tschüss
procedure AddBasket(doc: IXMLDOMDocument2; const path, opened, isUserAssigned: string);
const xpBaskets = '//Baskets'; tagBasket = 'Basket'; atPath = 'path'; atOpened = 'opened'; atIsUserAssigned = 'isUserAssigned'; var e: IXMLDOMElement; begin e := doc.selectSingleNode(xpBaskets) as IXMLDOMElement; if Assigned(e) then with e.appendChild(doc.createElement(tagBasket)) as IXMLDOMElement do begin setAttribute(atPath, path); setAttribute(atOpened, opened); setAttribute(atIsUserAssigned, isUserAssigned); end; end; |
Re: Ideen für spezielle Stringbearbeitung
Zitat:
scheinbar hab ich wieder was missverstanden oder falsch gemacht. denn es passiert gar nix. habe es folgendermassen in einer prozedur verpackt:
Delphi-Quellcode:
wie gesagt, wird leider nichts gespeichert. wahrscheinlich wieder eine kleine sache??
procedure Tfrmxml.btnneubClick(Sender: TObject);
var doc: IXMLDOMDocument2; begin if CreateDocument(doc, dbMemo1.Text) then begin AddBasket(doc,edpfad.text,'true','true'); datamodule2005.ADOQuery3.SQL.Text:=sql_update_xml; datamodule2005.ADOQuery3.Parameters.ParamByName('xml').Value:=doc.xml; datamodule2005.ADOQuery3.Parameters.ParamByName('benutzername').Value:=edbenutzername.text; datamodule2005.ADOQuery3.ExecSQL; btnneu.click; // Neu! end else ShowParseError(doc.parseError); end; |
Re: Ideen für spezielle Stringbearbeitung
XML to String.
Gibts sowas eigentlich? Bzw. doc (IXMLDOMDocument2) to String. doc.xml... mensch ist wohl schon spät. sorry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz