Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 20:30.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Hallo Christoph,

      danke erst einmal für deine Antwort.

      zu deiner ersten Frage:
      ja ich habe das funktionierende BIB Original geändert und nun tuts nicht mehr.
      Geändert habe ich den Namen der Datenbank auf die ich zugreife. Im Original heisst die DB genauso wie das Template. Drum wird beim put-Befehlim Original auch keine DB angegeben. Ich verwende für DB umd Template unterschiedliche Namen und gebe deshalb beim put meine DB 'content" an.

      zu 2)
      out "lastid=$_lastid"; habe ich ausprobiert
      
      der zurückgegeben Wert ist null.

      micha


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von micha (85 Beiträge) am Dienstag, 1.Juni.2004, 20:10.
    $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Hallo Leute,

      $$_db{_id} gibt in meiner Applikation plötzlich keinen Wert mehr zurück.
      
      Wenn ich das Original "Struktur" von DokuTeam+Andreas verwende, funktioniert es.
      Weiss jemand Rat?

      ps: die Felder existieren in der Datenbank "content" und die Datensätze werden auch angelegt.

      ##########################
      put ["Titel", $_get{Titel}, "Text", $_get{Text}, "next", ($als eq "Unterpunkt"?$child:$next), "child", ""],"content";		
      # fügt neuen eintrag hinzu, mit dem "child" bzw. "next" des ausgewaehlten eintrags als next. $Titel wird vom obigen 'get' überschrieben, deshalb $_get{Titel}, ebenso mit $Text
      $_lastid = $$_db{_id};	
      # JURI Urx, das Feld $_lastid gibts nur in der bbeta :(
      my $lastid=$_lastid;
      out "lastid: $lastid    $_lastid  $";
      ##########################
      

     Antworten

    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 16:49.
    $$_db{_id} bräuchte dringend bitte bitte Hilfe

      Hallole,

      nachdem sich bisher niemand zu einer Antwort auf meine Frage aufraffen konnte und ich ... aber ohne Hilfe nicht mehr weiterkomme und deshalb heute abend keine Chance hab produktiv zu sein ... frage ich nun und hier nochmals :-)

      $$_db{_id} gibt in meiner Applikation keinen Wert mehr zurück.
      

      Wenn ich das Original "Struktur" von DokuTeam+Andreas Jurenda verwende, gibt der Ausdruck die id des letzten erfolgreichen DB-Eintrages zurück.

      Leider verstehe ich die Syntax nur insoweit, als dass es sich wohl um einen Zeiger auf einen hash handelt. Diese internen Variablen nicht dokumentiert bei BP.
      Der Wert den $_db zurückgibt, gleicht übrigens $htx auf Haar :-)

      Also büdde büdde an die Fachleute, macht mich doch mal eben schlau...

      ps: dass die Felder in der Datenbank "content" existieren habe ich sichergestellt und auch die Datensätze werden angelegt.

      ##########################
      put ["Titel", $_get{Titel}, "Text", $_get{Text}, "next", ($als eq "Unterpunkt"?$child:$next), "child", ""],"content"; 
      # fügt neuen eintrag hinzu, mit dem "child" bzw. "next" des ausgewaehlten eintrags als next. $Titel wird vom obigen 'get' überschrieben, deshalb $_get{Titel}, ebenso mit $Text
      $_lastid = $$_db{_id}; 
      

      # JURI Urx, das Feld $_lastid gibts nur in der bbeta :(

      my $lastid=$_lastid;
      out "lastid: $lastid $_lastid  _id: $_id _db: $_db";
      

     Antworten

    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 17:39.
    $$_db{_id} bräuchte dringend bitte bitte Hilfe

      Hallole,

      nachdem sich bisher niemand zu einer Antwort auf meine Frage aufraffen konnte und ich ... aber ohne Hilfe nicht mehr weiterkomme und deshalb heute abend keine Chance hab produktiv zu sein ... frage ich nun und hier nochmals :-)

      $$_db{_id} gibt in meiner Applikation keinen Wert mehr zurück.
      

      Wenn ich das Original "Struktur" von DokuTeam+Andreas Jurenda verwende, gibt der Ausdruck die id des letzten erfolgreichen DB-Eintrages zurück.

      Leider verstehe ich die Syntax nur insoweit, als dass es sich wohl um einen Zeiger auf einen hash handelt. Diese internen Variablen nicht dokumentiert bei BP.
      Der Wert den $_db zurückgibt, gleicht übrigens $htx auf Haar :-)

      Also büdde büdde an die Fachleute, macht mich doch mal eben schlau...

      ps: dass die Felder in der Datenbank "content" existieren habe ich sichergestellt und auch die Datensätze werden angelegt.

      ##########################
      put ["Titel", $_get{Titel}, "Text", $_get{Text}, "next", ($als eq "Unterpunkt"?$child:$next), "child", ""],"content"; 
      # fügt neuen eintrag hinzu, mit dem "child" bzw. "next" des ausgewaehlten eintrags als next. $Titel wird vom obigen 'get' überschrieben, deshalb $_get{Titel}, ebenso mit $Text
      $_lastid = $$_db{_id}; 
      

      # JURI Urx, das Feld $_lastid gibts nur in der bbeta :(

      my $lastid=$_lastid;
      out "lastid: $lastid $_lastid  _id: $_id _db: $_db";
      

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 2.Juni.2004, 20:58.
    Re: $$_db{_id} bräuchte dringend bitte bitte Hilfe

      also ich hab mich nich direkt in das Teil reingekniet - ist ziemlich komplex und man muss höllisch dabei aufpassen mit den Varnamen und Referenzen....
      Also - die Werte unten sind alle belegt?
      -----
      out "lastid: $lastid $_lastid _id: $_id _db: $_db";
      
      -----
      dann wäre nochmal zu testen, ob der Hash %$_db überhaupt existiert - mir ist jetzt auf die Schnelle nicht klar, ob in der Zuweisung an $_lastid ne Derefernzierung stattfindet oder ob das ein dynamischer Hashname ist, der variabel je nach Datenbankname benannt wird (aber das vielleicht eher nicht).
      also mal testweise ausgeben:
      ----
      while ( ($k,$v) each keys %$_db){
      out "Hash-Key: $k - Hash-Value: $v<br>";
      
      cnt_hwerte++;
      }
      out "Hash hat $cnt_hwerte Elemente<br>";
      
      ----
      Dann kann man mal weitersehen und suchen, wo der Fehler liegen könnte.
      Aber ich glaub, wenn du das Teil überhaupt nicht verstanden hast, kannste eh nix so richtig anpassen - das ist immer das Problem bei guten komplexen fremden Scripten, sich in die Gedankengänge des Programmierers einzudenken....

     Antworten

    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 22:24.
    Re: $$_db{_id} bräuchte dringend bitte bitte Hilfe

      Hi hemplr,

      nö das mit dem script "Hierarchische Verzeichnisstruktur - lauffähig" von Andreas und Christoph aus der Bib ist dann irgendwann nicht mehr so schlimm. Ich habe inzwischen den fehlenden copy-Befehl dazu 'gedichtet'.
       
      Der Hashname scheint wohl eher statisch zu sein. Hab mit dem Datenbanknamen schon ein bisschen rumexperimentiert; ohne Ergebnis.
      Ich vermute man muss den Datenbanknamen irgendwo in den hash hineinschreiben. Frägt sich nur wo und wie.
      Ich versuche mal entsprechend deinem Vorschlag den Hash aufzulösen.
      mal sehen...heut wird das aber nix mehr :-)

      Danke für deine Unterstützung

      micha

     Antworten

    Beitrag von micha (85 Beiträge) am Samstag, 5.Juni.2004, 08:53.
    Re: $$_db{_id} bräuchte dringend bitte bitte Hilfe

      hier ist der Workaround, den ich zur Lösung meines Problemes mit $$_db{_id}gefunden habe.
      Man benötigt ihn, wenn man in "Struktur" Datenbanken mit anderen Namen als dem Templatenamen verwenden möchte:


      out "# --- cmd=new - eintrag hinzufügen ---<br>";
      my $loc_db=$_get{loc_db};	
      ###################!!!!!!!!	
      $htx =~  /(^.+\/)/;	# =Pfadname ohne Templatename aus $htx erzeugen
      $_db=$1.$loc_db;	# fügt den lokalen DB_Namen an Pfadname an und weist ihn $db zu (es wird der komplette Pfad in $_db benötigt)
      ###################!!!!!!!!!
      

      get "Id==$id", "$loc_db"; #daten des ausgewaehlten punktes holen (loc_db muss angegeben werden)

      ################## dann tut es:
      put ["Titel", $_get{Titel}, "Text", $_get{Text}],$loc_db;
      $_lastid = $$_db{_id};	 # JURI Urx, das Feld $_lastid gibts nur in der bbeta :(
      

      out "_lastid: $_lastid";
      ##################
      


      Viele Grüsse micha

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 2.Juni.2004, 20:15.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Ich hab jetzt noch nich genau verstanden wie das passiert ist:

      Also wenn Du das Original aus der bib lädst, dann klappt es? Und dann hast Du was verändert und es klappt nich mehr? Oder wars anders?

      Hast Du Dir mal nach dem

      $_lastid=$$_db{_id};
      

      mit

      out "lastid=$_lastid";
      

      einfach mal den Wert ausgeben lassen?

     Antworten

    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 20:30.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Hallo Christoph,

      danke erst einmal für deine Antwort.

      zu deiner ersten Frage:
      ja ich habe das funktionierende BIB Original geändert und nun tuts nicht mehr.
      Geändert habe ich den Namen der Datenbank auf die ich zugreife. Im Original heisst die DB genauso wie das Template. Drum wird beim put-Befehlim Original auch keine DB angegeben. Ich verwende für DB umd Template unterschiedliche Namen und gebe deshalb beim put meine DB 'content" an.

      zu 2)
      out "lastid=$_lastid"; habe ich ausprobiert
      
      der zurückgegeben Wert ist null.

      micha

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 2.Juni.2004, 20:58.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Puhh, schwer zu sagen, weiss nich welche Tricks Andreas Jurenda da genau angewandt hat ;-)

      Mmh, u.U. isses aber schon das mit dem "content", versuch mal:

      1.

      $_lastid = $content{_id}; 
      

      wenns nich klappt

      2.

      put ["Titel", $_get{Titel}, "Text", $_get{Text}, "next", ($als eq "Unterpunkt"?$child:$next), "child", ""],"content", "content";
      

      und dann nochmal mit $_db und wie unter 1.

      klar? ;-)

      hoffe es funzt... ;-)

     Antworten

    Beitrag von micha (85 Beiträge) am Mittwoch, 2.Juni.2004, 22:00.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Danke für die Tips Christoph.

      aber da geht nix.
      Ein bisschen Einblick gibt das Programm "Dump" aus der Bib auch von Andreas . Aber für sowas habe ich eindeutig zu wenig Ahnung.

      Vermute das ist ne Frage für Andreas ... oder? :-)
      Ist er ab und zu im Forum?

      Danke nochmal schön und guds nächtle

      micha

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 2.Juni.2004, 23:26.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Was wirft dump denn aus?

     Antworten

    Beitrag von micha (85 Beiträge) am Donnerstag, 3.Juni.2004, 19:05.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 3.Juni.2004, 19:59.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Mmhh, ja, weiss erstmal auch nicht weiter... Is tatsächlich ne Frage für Andreas... Mich wunderts, dass er mit $$_db{_id} überhaupt an die letzte Id rankommt - offiziell is das eigentlich nicht, d.h. es kann gut sein, dass das nur funktioniert, wenn man keine andere DB angibt... Mmhh...

     Antworten

    Beitrag von micha (85 Beiträge) am Donnerstag, 3.Juni.2004, 20:28.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Ok Christoph,

      erst einmal vielen Dank für deine Unterstützung.
      Aber mal mal andersherum gefragt:
      Kennst du einen Befehl/ein Konzept mit dem ich den letzten Eintrag einer DB
      (ev. auch nur direkt nach dem schreibenden Zugriff) ermitteln kann?
      Ich meine vielleicht kennst du ja was internes.

      Mir fallen im Moment nur schmerzvolle Lösungen ein.

      Viele Grüsse micha

     Antworten

    Beitrag von micha (85 Beiträge) am Donnerstag, 3.Juni.2004, 20:54.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Ok Christoph,

      erst einmal vielen Dank für deine Unterstützung.
      Aber mal mal andersherum gefragt:
      Kennst du einen Befehl/ein Konzept mit dem ich den letzten Eintrag einer DB
      (ev. auch nur direkt nach dem schreibenden Zugriff) ermitteln kann?
      Ich meine vielleicht kennst du ja was internes.

      Mir fallen im Moment nur schmerzvolle Lösungen ein.

      Viele Grüsse micha

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 20.Juni.2004, 11:38.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Hallo Micha:

      Sorry, Deinen Beitrag hab ich irgendwie übersehen.

      Au, au, au, das Bib-Beispiel funktioniert nur wenn Template und Datenbank gleich heißen. Werde das gleich ändern!

      Also die gesamte Datenbankinformation steht in einem Hash. Und dieser Hash enthält Scalare, Arrays und auch Hashes.

      Der Name des db-Hash ist der volle Datenbankname (dabei gehe ich davon aus, daß Dein Username micha ist):

      %/micha/verzeichnis/datenbankname

      In einem Template, das auf eine Datenbank gleichen Namens zugreift steht der volle Datenbankname automatisch in $_db.

      $$_db{_id} greift nun einfach auf das Elemente _id des Datenbankhashes zu.
      

      Wenn nun $_db nicht die gewünschte Datenbank ist, dann mußt Du den korrekten Pfad selber setzen:

      ${'/micha/verzeichnis/structur'}{_id}
      

      Dabei kann es hier auch noch zu kleine Problemchen kommen, wenn der Datenbankhash nicht vollständig gefüllt ist (keine Ahnung warum, aber der ist manchmal unvollständig, wenn Template und Datenbank verschieden heißen).

      Um auf Nummer sicher zu gehen gib bei den get's, del's, mod's,... explizit das Ergebnis (den Ergebnishash) an, wobei dieser Name unbedingt mit einem '/' beginnen muß:

      $_struct = '/strukt';
      get ..., datenbankname, $_struct;
      mod ..., datenbankname, $_struct;
      $_lastid = $$_struct{_id};
      

      Grüße Andreas :-})

      PS.: Die Schwierigkeit hierbei ist, daß wir hier in die interne Struktur einer baseportal-Datenbank reinschauen, und diese eben nicht freigegeben ist. Deshalb habe ich im Datenbank-Dump-Beispiel aus der Bib die einzelnen Felder nicht dokumentiert (sind ja meistens selbsterklärend), denn diese können sich jederzeit ohne Vorankündigung ändern :(

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 20.Juni.2004, 11:47.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Uuups, da war ich übergründlich.

      Besser (und einsichtiger) gehts so:

      $struct = '/micha/verzeichnis/datenbank' # hier die richtigen Werte einsetzen!
      get ..., $struct; # oder
      put ..., $struct; # oder
      mod ..., $struct;
      $_lastid = $$struct{_id};
      

      Grüße Andreas :-})

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 20.Juni.2004, 12:36.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      So, jetzt steht eine aktualisierte Version in der Bib, in der Du einen beliebigen Datenbanknamen angeben kannst.
      Vorausgesetzt wird dabei, daß diese im aktuellen Verzeichnis steht.

      Wenn nicht, dann mußt ihn halt vollständig qualifizieren mit:

      $struct = '/username/verzeichnispfad/datenbankname';
      

      Grüße Andreas :-})

     Antworten

    Beitrag von micha (85 Beiträge) am Sonntag, 20.Juni.2004, 15:17.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Thx Andreas,

      du und deine Trickkiste!
       Echt cool!!
      
      Warst du in Urlaub? :-))

      vG micha

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 20.Juni.2004, 18:14.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

     Antworten

    Beitrag von micha (85 Beiträge) am Sonntag, 20.Juni.2004, 20:46.
    Re: $$_db{_id} tut nicht und verstanden hab ichs auch nicht

      Hallo Andreas,

      die links sind ja so abgefahren. Dankeschön und Hut ab.
      Das mit der Trickkiste war eher positiv gemeint.

      Komisch ...CB wollte an nichts schuld gewesen sein und von nix was wissen.
      Die Frage ob es sich um Notkonstrukte handelt, Baseportal durch die Hintertür sozusagen, bleibt offen. Das sind sensible und schwer wartbare Strukturen, die ihre Funktion sofort einstellen, wenn sich an der Strukur von BP was ändert.

      Aber ich höre ja schaon auf zu meckern und fange jetzt mal mit dem Verdauen an. Wie Klitschko sagt: Schweöre Kost :-)

      vG micha

     Antworten


     
 Liste der Einträge von 30151 bis 30301:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.33s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!