doppelt archiviert - 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 arj (14 Beiträge) am Montag, 20.Dezember.2004, 22:28.
    doppelt archiviert

      In der Biblio hatte ich einst folgendes Skript gefunden, welches Termine nach Ablauf ins Archiv verschiebt. Weiß jemand, warum jeder archivierte Datensatz doppelt im Archiv erscheint und wie es ohne Dopplung geht?

      <perl>
      if ($cmd eq "")
      {
      get "Datum<jetzt","gospelevents"; # dbname mit der orginaldb ersetzen
      while (get_next("gospelevents")) # hier auch
         {
          del "Id==$_id","gospelevents"; # und nochmal
          put
          ["Event",$Event,"Rubrik",$Rubrik,"Datum",$Datum,"Uhrzeit",$Uhrzeit,"Ort",$Ort,"Veranstalter",$Veranstalter,"Beschreibung",$Beschreibung,"Link",$Link,"Autor",$Autor,"EMail",$EMail,"Einstellungsdatum",$Einstellungsdatum],"events_archiv";
         }
      }
      </perl>
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von arj (14 Beiträge) am Montag, 20.Dezember.2004, 22:28.
    doppelt archiviert

      In der Biblio hatte ich einst folgendes Skript gefunden, welches Termine nach Ablauf ins Archiv verschiebt. Weiß jemand, warum jeder archivierte Datensatz doppelt im Archiv erscheint und wie es ohne Dopplung geht?

      <perl>
      if ($cmd eq "")
      {
      get "Datum<jetzt","gospelevents"; # dbname mit der orginaldb ersetzen
      while (get_next("gospelevents")) # hier auch
         {
          del "Id==$_id","gospelevents"; # und nochmal
          put
          ["Event",$Event,"Rubrik",$Rubrik,"Datum",$Datum,"Uhrzeit",$Uhrzeit,"Ort",$Ort,"Veranstalter",$Veranstalter,"Beschreibung",$Beschreibung,"Link",$Link,"Autor",$Autor,"EMail",$EMail,"Einstellungsdatum",$Einstellungsdatum],"events_archiv";
         }
      }
      </perl>
      

     Antworten

    Beitrag von Claus (4636 Beiträge) am Dienstag, 21.Dezember.2004, 10:10. WWW: automobilhai.de
    Re: doppelt archiviert

      Hi,

      lies mal die known Bugs!!!!!

      Gruß

      Claus

     Antworten

    Beitrag von arj (14 Beiträge) am Dienstag, 21.Dezember.2004, 13:17.
    Re: doppelt archiviert

      jup - hab ich.
      (Bibliothek-Beitrag: "löschen/verschieben von Datensätzen mit abgelaufenem Datum von Achim Stollberg")

      Aber hier ist das Problem auch bei Terminen, die noch nicht abgelaufen sind. Die Archivierung geschieht im Moment des ersten Aufrufes der Seite nach dem abgelaufenen Termin. Richtig - dann liegt er tatsächlich zurück - aber das ist ja auch der Sinn. Also widerspricht sich das und geht gar nicht anders.
      Hat jemand zufällig eine andere Variante? Zur Zeit muss ich jeden doppelten Archiv-Termin eigenhändig löschen. Ist umständlich.

     Antworten

    Beitrag von Claus Christmeier (598 Beiträge) am Dienstag, 21.Dezember.2004, 14:18.
    Re: doppelt archiviert

      Hallo arj,

      probier´s doch mal so:

      <perl>
      if ($cmd eq "")
        {
         get "Datum<jetzt","gospelevents", "lesen"; # dbname mit der orginaldb ersetzen
         while (get_next("lesen")) # hier auch
              {
               $id_save = $_id;
               put ["Event",$Event,"Rubrik",$Rubrik,"Datum",$Datum,"Uhrzeit",$Uhrzeit,"Ort",$Ort,"Veranstalter",$Veranstalter,"Beschreibung",$Beschreibung,"Link",$Link,"Autor",$Autor,"EMail",$EMail,"Einstellungsdatum",$Einstellungsdatum],"events_archiv";
               del "Id==$id_save","gospelevents"; # und nochmal
              }
        }
      </perl>
      

      Viel Erfolg

      Gruß
      Claus

     Antworten

    Beitrag von arj (14 Beiträge) am Dienstag, 21.Dezember.2004, 21:26.
    Re: doppelt archiviert

      danke christoph. aber jetzt möchte ich aus prinzip die 2. datenbank ;-)
      deine lösung vielleicht später :-)

      variante von claus bringt keine änderung. dennoch danke.
      habe weiter ausgedünnt und nun tatsächlich beim ersten aufruf einfache archivierung. aber: beim jedem weiteren aufruf wird leerer datensatz ins archiv geschrieben. es wird mit "" verglichen. wie werde ich diese abfrage los bzw. das skript sauber hin?

      <perl>
      if ($cmd eq "")
      {
      get "Datum<jetzt","gospelevents"; # dbname mit der orginaldb ersetzen
      {
          del "Id==$_id","gospelevents"; # und nochmal
          put
          ["Event",$Event,"Rubrik",$Rubrik,"Datum",$Datum,"Uhrzeit",$Uhrzeit,"Ort",$Ort,"Veranstalter",$Veranstalter,"Beschreibung",$Beschreibung,"Link",$Link,"Autor",$Autor,"EMail",$EMail,"Einstellungsdatum",$Einstellungsdatum],"gospelevents_archiv";
         }
      }
      </perl>
      

     Antworten

    Beitrag von Claus Christmeier (598 Beiträge) am Dienstag, 21.Dezember.2004, 22:23.
    Re: doppelt archiviert

      Hallo arj,

      jetzt musst Du natürlich abfragen ob der 'get' überhaupt Sätze gefunden hat.

      if ($cmd eq "")
        {
         get "Datum<jetzt","gospelevents"; # dbname mit der orginaldb ersetzen
         if ($_amount_query)
           {
            put    ["Event",$Event,"Rubrik",$Rubrik,"Datum",$Datum,"Uhrzeit",$Uhrzeit,"Ort",$Ort,"Veranstalter",$Veranstalter,"Beschreibung",$Beschreibung,"Link",$Link,"Autor",$Autor,"EMail",$EMail,"Einstellungsdatum",$Einstellungsdatum],"gospelevents_archiv";
            del "Id==$_id","gospelevents"; # und nochmal
           }
        }
      

      Und mache den 'del' NACH dem 'put' ist doch logisch oder?

      Viel Erfolg.

      Gruß
      Claus

     Antworten

    Beitrag von arj (14 Beiträge) am Dienstag, 21.Dezember.2004, 23:07.
    Re: doppelt archiviert

      hui - ja toll. jetzt gehts.
      das mit dem del nach put hat ich mir auch so gedacht - hatte es nur übernommen.
      is aber nun quasi perfekt. herzlichen dank.
      die schicke methode von christoph folgt dann evtl. im nächsten jahr.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 21.Dezember.2004, 15:25.
    Re: doppelt archiviert

      Musst Du denn von einer in die andere Datenbank schieben? Lass doch alles in einer Datenbank und hole bei der Ausgabe einfach nur die die Du haben willst:

      get "Datum>=jetzt", "...";
      

      ;-)

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 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.23s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!