@CB /Sander - komische Sache - mod läuft sich tot - get geht ? - 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 hempelr (1976 Beiträge) am Samstag, 7.Juni.2003, 09:01.
    @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      Hallo,
      vielleicht hat ja jemand Erfahrung warum beim Versuch, Werte in ner DB global zu ändern das Mod auf die Datensätze mit Übergabe der zu ändernden Werte sich totläuft und ein get auf ne leere Kopie der Datenbank funzt. (Anzahl der Datensätze ca. 100 - Felder 15 mit versch. kurzen Inhalten)
      Hier mal der Code, ich hab das mod auskommentiert, das get ist drin:

      ----- schnipp
      <perl>
      get "Id==*", "db1";
      out "Es sind $_amount_all Datensätze vorhanden<br>";
      while(get_next(db1)){
      $cnt++;
      $ident = $Id; # $ident = $_id auch schon probiert
      

      # Felder Abholzeit und Anlieferzeit sind von Datum in Text geänderte Felder
      $altwert1 = $Abholzeit; $altwert2 = $Anlieferzeit;
      

      # Stunde:Minute aus Wert rausdröseln (raw_format des Datums im Feld):
      $neuwert1 = substr $altwert1, 11, 5; $neuwert2 = substr $altwert2, 11, 5;
      

      # Feldvariablen mit den neue Werte belegen:
      $Abholzeit = $neuwert1; $Anlieferzeit = $neuwert2;
      #--------------------------------------------#
          get "*", "db1.fields", "felder";
          $_put{_amount} = 1;
          while(get_next(felder)){
             if ($Field ne "Id"){
             $_put{$Field} = ${$Field};
             out $_put{$Field};
             }
          }
          $_put{_amount} = 1;
          while( ($key,$wert) = each %_put){
          out "Feld: $key - Wert: $wert<br>";
          }
      
          out "Werte aus Hash: $_put{Abholzeit} - $_put{Anlieferzeit}<br>";     out "----- Datensatz Nr. $cnt mit ID $Id --- <br>"; #--------------------------------------------# # alle folgenden Varianten des Mod laufen sich tot..... # mod "Id==!$ident",undef, "db1"; # mod "Id==!$ident", ["Abholdatum",$Abholdatum,"Anlieferdatum",$Anlieferdatum],"db1"; #--------------------------------------------# put undef, "db1_kopie"; } out "Insgesamt $cnt Datensätze von $_amount_all geändert"; </perl>
      ---- schnapp
      Dass da unnötige Variablenzuweisungen an Zwischenvars sind ist mir vollkommen klar, nur so ist es m.E. etwas übersichtlicher und einfacher zu ändern.

      Wäre schön, wenn mir jemand meinen gedanklichen Fehler im Mod sagen könnte
      Danke
      Ruben


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Samstag, 7.Juni.2003, 09:01.
    @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      Hallo,
      vielleicht hat ja jemand Erfahrung warum beim Versuch, Werte in ner DB global zu ändern das Mod auf die Datensätze mit Übergabe der zu ändernden Werte sich totläuft und ein get auf ne leere Kopie der Datenbank funzt. (Anzahl der Datensätze ca. 100 - Felder 15 mit versch. kurzen Inhalten)
      Hier mal der Code, ich hab das mod auskommentiert, das get ist drin:

      ----- schnipp
      <perl>
      get "Id==*", "db1";
      out "Es sind $_amount_all Datensätze vorhanden<br>";
      while(get_next(db1)){
      $cnt++;
      $ident = $Id; # $ident = $_id auch schon probiert
      

      # Felder Abholzeit und Anlieferzeit sind von Datum in Text geänderte Felder
      $altwert1 = $Abholzeit; $altwert2 = $Anlieferzeit;
      

      # Stunde:Minute aus Wert rausdröseln (raw_format des Datums im Feld):
      $neuwert1 = substr $altwert1, 11, 5; $neuwert2 = substr $altwert2, 11, 5;
      

      # Feldvariablen mit den neue Werte belegen:
      $Abholzeit = $neuwert1; $Anlieferzeit = $neuwert2;
      #--------------------------------------------#
          get "*", "db1.fields", "felder";
          $_put{_amount} = 1;
          while(get_next(felder)){
             if ($Field ne "Id"){
             $_put{$Field} = ${$Field};
             out $_put{$Field};
             }
          }
          $_put{_amount} = 1;
          while( ($key,$wert) = each %_put){
          out "Feld: $key - Wert: $wert<br>";
          }
      
          out "Werte aus Hash: $_put{Abholzeit} - $_put{Anlieferzeit}<br>";     out "----- Datensatz Nr. $cnt mit ID $Id --- <br>"; #--------------------------------------------# # alle folgenden Varianten des Mod laufen sich tot..... # mod "Id==!$ident",undef, "db1"; # mod "Id==!$ident", ["Abholdatum",$Abholdatum,"Anlieferdatum",$Anlieferdatum],"db1"; #--------------------------------------------# put undef, "db1_kopie"; } out "Insgesamt $cnt Datensätze von $_amount_all geändert"; </perl>
      ---- schnapp
      Dass da unnötige Variablenzuweisungen an Zwischenvars sind ist mir vollkommen klar, nur so ist es m.E. etwas übersichtlicher und einfacher zu ändern.

      Wäre schön, wenn mir jemand meinen gedanklichen Fehler im Mod sagen könnte
      Danke
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 7.Juni.2003, 12:10.
    Re: @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      wiedermal, wenn du die daten mit get_next() holst und in dieser schleife auf die gleiche db moden willst, muß beim get,get_next ein ergebnishash angegeben werden.

      Sander

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 7.Juni.2003, 12:15.
    Re: @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      schreib mal das get auf die .fields vor die while(get_next) - sonst wird bei jedem durchlauf die selben Daten geholt... ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Samstag, 7.Juni.2003, 12:58.
    Re: @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      Danke - der fehlende Ergebnishash beim get auf die Werte war der Knackpunkt.
      Hatten wir das schon mal? - auf alle Fälle werd ich mirs jetzt merken.
      Das mit dem get auf die .fields stimmt natürlich - es ist ja nicht weiter schlimm, sieht man von der Laufzeit bei größeren DBs ab (müssen ja eh die Daten für jedes Feld und jeden Datensatz in den $_putHash geschrieben werden. also das while get next auf die Fields muss m.E. immer im while get next für die Daten laufen...)
      Hat sich aber ja erledigt, das mod geht - mann,mann,mann, solche "Kleinigkeiten"; zumal ich eigentlich sonst immer einen Ergebnishash angebe....
      Nochmals danke und schöne Pfingsten
      Feirt nicht zu toll in Eurer Lausitzschen Pfingsthochburg.... ;-)
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 7.Juni.2003, 13:05.
    Re: @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      >> Hatten wir das schon mal? - auf alle Fälle werd ich mirs jetzt merken.
      
      jaja schon zig-mal ;-)

      >> Feirt nicht zu toll in Eurer Lausitzschen Pfingsthochburg.... 
      
      wie feiert man eigentlich pfingsten? ,-)
      Ne, bin in Stuttgart, damit in Kürze die Domainbestellung an den Start gehen kann... :-)

      Sander

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Samstag, 7.Juni.2003, 13:14.
    Re: @CB /Sander - komische Sache - mod läuft sich tot - get geht ?

      na dann, das ist eine gute Tat, - hoffe dass es schnell geht, heut war Domain-Wechselschreiben in der Post, geht dann noch per Fax raus
      Viel Spass im Schwabenlande über Pfingsten - und spann mal aus (aber kann man das in soner Stadt wie Stuttgart - das ist doch jede Menge Nachtleben... ;-)
      Ruben

     Antworten


     
 Liste der Einträge von 37350 bis 37500: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.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!