Spalte nicht zulässig bei Update?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Numerisches Datumsformat
    Microsoft® SQL Server™ 2000 ermöglicht Ihnen die Angabe von Datumsdaten mit der numerischen Angabe eines Monats. So stellt z. B. das Datum 5/20/97 das Jahr 1997 und den zwanzigsten Tag des Monats Mai dar. Beim Verwenden des numerischen Datumsformats müssen Sie den Monat, den Tag und das Jahr in einer Zeichenfolge mit folgenden Trennzeichen angeben: mit Schrägstrichen (/), Bindestrichen (-) oder Punkten (.). Diese Zeichenfolge muss eines der folgenden Formate haben:

    Zahl Trennzeichen Zahl Trennzeichen Zahl [Uhrzeit] [Uhrzeit]

    Gültige numerische Formate sind:

    [0]4/15/[19]96 -- (mdy)
    [0]4-15-[19]96 -- (mdy)
    [0]4.15.[19]96 -- (mdy)
    [04]/[19]96/15 -- (myd)

    15/[0]4/[19]96 -- (dmy)
    15/[19]96/[0]4 -- (dym)
    [19]96/15/[0]4 -- (ydm)
    [19]96/[04]/15 -- (ymd)
    Also gut, bei den Daten steht das ohne trennzeichen da, also mal schaun was passiert, wenn ichs ändere...
    Wieder das "Die Anweisung wurde beendet."


    Allerdings müsste das Datum eh richtig sein, da es ja vom SQL-Server selber in das Feld geschrieben wird (" getdate()" oder so).
    Wenn ich den Teil mit dem Date aus dem SQL-String nehme, kommt auch wieder "Die Anweisung wurde beendet.".

    Kommentar


    • #17
      gut dann Standard-Debugging anwenden, d.h. es wird nur spaltenweise nacheinander aktualisiert, mal schauen, wann es abbricht.

      Kommentar


      • #18
        Also ich habe mal den...Query-Analyzer benutzt (mit dem String ohne die Date-Anweisung) und den String prüfen (nicht ausführen) lassen, dann kommt "Befehl erfolgreich ausgeführt".

        Sobald ich danach direkt auf Ausführen gehe, kommt Folgende meldung:
        Server: Nachr.-Nr. 547, Schweregrad 16, Status 1, Zeile 1
        Die UPDATE-Anweisung verstieß gegen die COLUMN FOREIGN KEY-Einschränkung 'FK__titles__pub_id__014935CB'. Der Konflikt trat in der pubs-Datenbank, Tabelle 'publishers', column 'pub_id' auf.
        Die Anweisung wurde beendet.
        Also irgendwas mit Fremdschlüssel... bla ... dass sich pub_id aus der Tabelle titles mit pub_id aus der Tabelle publishers beisst...
        Ehrm, ok, ich persönlich würde jetzt sagen, dass ich wenn, dann beide gleichzeitig ändern muss, da Fremd- und Primärschlüssel ja gleich bleiben müssen... uhm, aber ich kann den Primärschlüssel ja nicht einfach ändern.

        In dem Gebiet bin ich noch zu unbedarft x_X

        Also kurz: ich darf pub_id nicht ändern, oder? (Mal davon abgesehen, dass ich die garnicht ändern wollte...ich komm nit mehr mit -.-; )

        Kommentar


        • #19
          Original geschrieben von Gae-Bulga
          Also kurz: ich darf pub_id nicht ändern, oder? (Mal davon abgesehen, dass ich die garnicht ändern wollte...ich komm nit mehr mit -.-; )
          Doch ... allerdings nur, wenn ein entsprechender Datensatz in der Tabelle 'publishers' vorhanden ist ... dafür sind Fremdschlüssel nun einmal da, das die Referenzintegrität gewahrt bleibt ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #20
            Ja ok, soweit bin ich noch gekommen.
            Aber: wieso regt er sich über den Fremdschlüssel auf, wenn ich ihn doch garnicht ändern wollte.

            Ich lese die Daten aus dem Datensatz aus
            -> übergebe sie in ein Formular (ohne Formatierungen oder so)
            -> übergebe sie dem POST-Array
            -> schreibe die Variablen aus dem POST-Array in den SQL-String.

            So, aber ich habe nie versucht die pub_id zu ändern. Ich habe nur versucht 'price' um 0.01 zu verringern, also von 7.99 auf 7.98, mehr nicht.

            Und der Fehler kommt ja auch, wenn ich die variablen einfach nur in das Formular übergebe und genauso direkt wieder zurückschreibe.

            Also ich habe gerade mal im Query-Analyzer ein einfaches Select vom Datensatz probiert. Der sieht, offen zugegeben, anders aus, als das Formular ihn wiedergibt.
            (Zeilenumbrüche nur wegen der lesbarkeit)
            Code:
            PS7777	
            Emotional Security: A New Algorithm	
            psychology  	
            0736	
            7.9900	
            4000.0000	
            10	
            3336	
            Protecting yourself and your loved ones from undue emotional stress in the
            modern world. Use of computer and nutritional aids emphasized.
            1991-06-12 00:00:00.000
            Allerdings ergibt ein
            PHP-Code:
            foreach($row AS $zelle)
                {
                    echo 
            $zelle."<br>";    
                } 
            Code:
            PS7777
            Emotional Security: A New Algorithm
            psychology 
            0736
            7.99
            4000
            10
            3336
            Protecting yourself and your loved ones from undue emotional stress in the
             modern world. Use of computer and nutritional aids emphasized.
            12 06 1991 0:00
            also genau das gleiche, was im POST-Array übergeben wird.

            Aber die Formate scheinen dem Server egal zu sein, weil
            Code:
            UPDATE titles 
            SET title = 'Emotional Security: A New Algorithm', 
            type = 'psychology ', 
            pub_id = 0736, 
            price = 7.9800, 
            advance = 4000.0000, 
            royalty = 10, 
            ytd_sales = 3336, 
            notes = 'Protecting yourself and your loved ones from undue emotional
             stress in the modern world. Use of computer and nutritional aids emphasized.' 
            WHERE (title_id = 'PS7777')
            ergibt den gleichen Fehler wie vorher.

            Also immernoch kein Stück weiter

            Kommentar


            • #21
              Original geschrieben von Gae-Bulga
              Aber: wieso regt er sich über den Fremdschlüssel auf, wenn ich ihn doch garnicht ändern wollte.
              [...]
              Und der Fehler kommt ja auch, wenn ich die variablen einfach nur in das Formular übergebe und genauso direkt wieder zurückschreibe.
              du hast goth' aussage
              Doch ... allerdings nur, wenn ein entsprechender Datensatz in der Tabelle 'publishers' vorhanden ist ...
              aber schon verstanden, oder ...?

              Also immernoch kein Stück weiter
              wundert mich ehrlich gesagt nicht besonders.
              besonders viel mühe, die antworten hier zu verstehen, scheinst du dir nicht zu geben.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #22
                publisher
                0736
                New Moon Books
                Boston
                MA
                USA

                Spielst du darauf an?


                Dank an asp2php für die Mühe

                Kommentar


                • #23
                  das mit dem foreign key kann man aus deiner gelieferten Info nicht wissen, daher ...

                  OK, du hast dennoch versucht den Key zu ändern, indem pub_id in deiner Update-Liste auftaucht, daher der Fehler.

                  Warum schreibst du alles wieder zurück, wobei du nur eine Spalte ändern möchtest? Mach dein Update nur da, wo es notwendig ist und lass die Verwaltung des Foreign Keys dem SQL-Server.

                  Kommentar

                  Lädt...
                  X