Seite 1 von 1

Migration vom MS SQL Server A nach MS SQL Server B

Verfasst: 24.04.2003 16:24
von daniel_ch
Hallo

Ich habe gerade die PhpBB2 Datenbank auf dem MS SQL Server A (befindet sich auf dem Webserver) nach MS SQL Server B (befindet sich im Netzwerk) migriert.
Dabei musste ich auf dem Webserver nur noch DSN abändern, damit die auf MS SQL Server B zeigt und nicht wie bisher auf MS SQL A.

Nun Kann ich mein Forum öffnen und Beiträge anschauen. Auch bearbeiten von Beiträgen ist kein Problem. Das Problem entsteht wenn ich einen neuen Beitrag erfassen möchte. Dann erscheinen folgende Meldungen (wobei sehr wahrscheinlich nur die erste relevant wäre):

Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Der Wert NULL kann in Spalte 'topic_replies', Tabelle 'phpbb2.dbo.phpbb_topics' nicht eingefügt werden. Die Spalte lässt NULL-Werte nicht zu. INSERT schlägt fehl., SQL state 23000 in SQLExecDirect in c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php on line 154

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 452

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 453

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 454


Komisch ist, dass die Vorschau möglich ist (wird dabei etwas in die Datenbank geschrieben?)!

Scheinbar wird in die Spalte 'topic_replies' der Tabelle phpbb_topics ein NULL Wert geschrieben! Weiss jemand warum die betrefende Variable plötzlich keinen Wert hat?

Wie löse ich das Problem? Hab ich was bei der Migration vergessen?

Für jeden Hinweis, vielen Dank im Voraus.

PS: Eine Suche in diesem Forum brachte nichts. Scheinbar gab es solche Probleme bisher nicht!

Gruss
daniel aus der schweiz

Verfasst: 24.04.2003 16:51
von MBullmann
Ich weiß nur so viel das das Forum bei einem Abschicken Befehl den Topic schreibt was es bei einem Voransicht nicht macht.

Beim Bearbeiten verändert es nur die Werte entsprechend dem neu verändertem Topic. Dabei braucht das Forum keine neuen Werte legen da es diese ja schon hat.

Was der NULL Wert jedoch damit zu tun hat kann ich nicht beantworten.
Mein Server läuft auch auf Linux :lol:.

RE:

Verfasst: 24.04.2003 18:05
von Gast
Das hilft mir auch nicht weiter.

Nun hab ich im Code nachgeschaut. In der Datei:

posting.php (Hauptverzeichnis von PhpBB)

in der Zeilen: 520 bis 528 werden einige Variablen an die INSERT SQL Abfrage übergeben. Ich hab hier eine Auswertung gemacht und nur Titel und Topicinhalt sind bei mir gesetzt.

Hier noch der Auszug. Würde mich wundern ob bei euch das selbe rauskommt oder habt ihr doch z.B. den $username gesetzt.

Code: Alles auswählen

                        
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
$bbcode_uid = '';

echo $mode.":".$post_data.":".$bbcode_on.":".$html_on.":".$smilies_on.":".$error_msg.":".$username.":".$bbcode_uid.":".$subject.":".$message. ":".$poll_title.":".$poll_options.":".$poll_length;   
                    
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg,  $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
Zeile (ECHO) erzingt die Ausgabe der Variablen. Bei mir kommt folgendes raus:

newtopic:Array:1:0:1::::Titel der Testnachricht:das ist nur ein Test:::

Scheinbar liefert die HTTP_POST_VARS keine Werte für Username und andere Variablen!? Warum das?

Verfasst: 24.04.2003 22:04
von Mister_X
also erstmal muss ich sagen, dass ich mit MSSQL Datenbanken keine Erfahrung habe, aber dein Fehler klingt mir so als ob die Struktur der Datenbank falsch übertragen wurde. Der Wert topic_replies wird nicht eingetragen bei der Themaerstellung. Der sollte einfach standardmäßig 0 sein. Überprüfe vielleicht mal ob du den Standardwert für das Feld topic_replies auf 0 festsetzen kannst. Per Datenbanktool.

RE :-)

Verfasst: 25.04.2003 08:56
von Gast
@Mister_X

Genau das ist es :-) !!!! Die Standardwerte wurden nicht gesetzt und ID wurde auch nicht inkrementiert.
Scheinbar habe ich beim Import nicht alles richtig aktiviert. Bei einem 2. Versuch heute ging alles wie gewollt. Jetzt kann ich auch neue Beiträge problemlos erstellen.

Vielen Dank für die Hilfe !

Gruss
aus der Schweiz