AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ideen für spezielle Stringbearbeitung

Ein Thema von toyoman · begonnen am 21. Jul 2008 · letzter Beitrag vom 6. Aug 2008
Antwort Antwort
Seite 8 von 8   « Erste     678
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#71

Re: Ideen für spezielle Stringbearbeitung

  Alt 6. Aug 2008, 08:26
Erfolgserlebnis:

Delphi-Quellcode:
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;
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.
Was ich noch ändern musste: doc.xml verwenden und nicht in Hochkomma in die DB setzen.
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#72

Re: Ideen für spezielle Stringbearbeitung

  Alt 6. Aug 2008, 11:43
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#73

Re: Ideen für spezielle Stringbearbeitung

  Alt 6. Aug 2008, 14:19
Sali,

luegsch emal:

Delphi-Quellcode:
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;
Tschüss
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#74

Re: Ideen für spezielle Stringbearbeitung

  Alt 6. Aug 2008, 16:30
Zitat von marabu:
Sali,

luegsch emal:

Delphi-Quellcode:
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;
Tschüss
gruäzi

scheinbar hab ich wieder was missverstanden oder falsch gemacht. denn es passiert gar nix. habe es folgendermassen in einer prozedur verpackt:

Delphi-Quellcode:
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;
wie gesagt, wird leider nichts gespeichert. wahrscheinlich wieder eine kleine sache??
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#75

Re: Ideen für spezielle Stringbearbeitung

  Alt 6. Aug 2008, 16:42
XML to String.
Gibts sowas eigentlich? Bzw. doc (IXMLDOMDocument2) to String.

doc.xml...
mensch ist wohl schon spät. sorry
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf