Compare-Befehl bei Typo3 und MSSQL-Datenbank

  • infastra infastra
    Padawan
    0 x
    46 Beiträge
    0 Hilfreiche Beiträge
    18. 08. 2008, 15:05

    Hallo,

    ich muss eine Typo3-Installation mit einem MSSQL-Datenbankserver realisieren. Die Treiber und die Verbindung zum MSSQL-Server kann ich mittels odbc bereits realisieren. Über ein PHP-Skript kann ich auch Tabellen erstellen und Daten abrufen. Das Installtool von Typo3 ist ebenfalls bereits abrufbar. Soweit zum Positiven. Nun das Negative, es gibt ein Problem: Wenn ich unter dem Punkt "Database Analyser" Compare anklicke, damit ich die notwendigen Tabellen in der Datenbank erstellen kann, kommt der Fehler mysql_query() in der Datei t3lib/class.t3lib_db.php in der Zeile 1046. Die Extension dbal und adodb habe ich in der Installation integriert, so dass ich davon ausgehe, dass die SQL-Befehle für die MSSQL-Datenbank angepasst werden. Aber anscheinend macht er es doch nicht. Hat jemand eine Idee wie ich dies Problem beheben kann?

    Mir ist außerdem unter dem Punkt "Basic Configuration" aufgefallen, dass in dem Punkt database zwar die Datenbank aufgelistet ist, aber dahinter ein (NO ACCESS!) steht. Warum? Ich konnte doch mit dem gleichen Benutzer und den gleichen DSN-Daten eine Tabelle dort anlegen.

    Folgende Versionen verwende ich:
    PHP: 5.2.0
    Typo3: 4.2.1
    dbal & adodb: die Versionen, die mit Typo3 4.2.1 verteilt werden. Sie befinden sich unter typo3/sysext/

    Vielen Dank1
    mathias


  • 1
  • infastra infastra
    Padawan
    0 x
    46 Beiträge
    0 Hilfreiche Beiträge
    25. 08. 2008, 13:36

    Nachdem ich endlich mal Zeit gefunden habe, mich durch den Quelltext zuwühlen, habe ich die Funktionen im Installtool, die immer noch mysql-Befehle verwenden auskommentiert. Dies betraf hauptsächlich admin_get_charsets. Ich konnte auch endlich einen Vergleich mit der vorhandenen Datenbank anstellen ... und - wie nicht anders zu erwarten - es kam ein Fehler.

    Mir ist klar, dass die SQL-Befehle für die Installation von Mysql abgeleitet sind. Allerdings war ich der Meinung, dbal verallgemeinert diese SQL-Statements, damit sie auch auf anderen Datenbanksystemen laufen würden. Mit folgendem Befehl brach der Importvorgang ab:

    ERROR: Query could not be parsed: "SQL engine parse ERROR: Still content in clause after parsing!: near "ENGINE=InnoDB "". Query: "CREATE TABLE cache_hash ( hash varchar(32) NOT NULL default '', content mediumblob, tstamp int(11) unsigned NOT NULL default '0', ident varchar(20) NOT NULL default '', PRIMARY KEY (hash) ) ENGINE=InnoDB;"

    Hat jemand eine Idee, wie dieses Prooblem behoben werden kann?

    Vielen Dank
    mathias

  • 1