Hallo,
ich hab folgendes Problem:
Die Software, die ich seit kurzem betreue, soll auf den Sql Server umgestellt werden. Die Applikation ist mit Delphi 6 entwickelt worden. Im Quellcode wird an sehr vielen Stellen TADOTable in Verbindung mit TableDirect := True verwendet. Nun unterstützt der Sql Server kein cmdTableDirect. Was das ganze nun noch schlimmer macht ist, dass noch dazu SQL-Stmts im TableName eingetragen sind.
Bsp:
Für die derzeitigen Datenbanken (MS Access und Sqlbase) funktioniert dies einwandfrei, jedoch konnte ich dieses Beispiel nicht auf den Sql Server übertragen. Der Sql Server unterstützt cmdTableDirect nicht und lässt im TableName kein Sql-Stmt zu (ist dies korrekt?).
Jetzt besteht mein Problem darin, dass der gesamte Quellcode mit solchen Konstrukten übersät ist. Wie kann ich (möglichst einfach, mit wenig Aufwand) die Umstellung machen (wenn möglich auch so, dass die anderen Datenbanken weiterhin unterstützt werden)?
Meine erste Idee wäre eine Subklasse von TADOTable zu erstellen, welche im Hintergrund eine TADOQuery verwendet. Jedoch hab ich mich bisher nur sehr wenig mit ADO beschäftigt und kann die Schwierigkeiten kaum abschätzen. Es stellt sich schließlich auch die Frage, ob dies überhaupt möglich ist und zu einer Lösung führt?
Ich wäre sehr dankbar, wenn mich jemand beraten könnte. Danke :-)
ich hab folgendes Problem:
Die Software, die ich seit kurzem betreue, soll auf den Sql Server umgestellt werden. Die Applikation ist mit Delphi 6 entwickelt worden. Im Quellcode wird an sehr vielen Stellen TADOTable in Verbindung mit TableDirect := True verwendet. Nun unterstützt der Sql Server kein cmdTableDirect. Was das ganze nun noch schlimmer macht ist, dass noch dazu SQL-Stmts im TableName eingetragen sind.
Bsp:
Code:
t := TADOTable.Create(nil); t.ConnectionString := <<ConnectionString>> t.TableDirect := True; t.TableName := 'SELECT col1, col2 FROM tab'; t.Open;
Jetzt besteht mein Problem darin, dass der gesamte Quellcode mit solchen Konstrukten übersät ist. Wie kann ich (möglichst einfach, mit wenig Aufwand) die Umstellung machen (wenn möglich auch so, dass die anderen Datenbanken weiterhin unterstützt werden)?
Meine erste Idee wäre eine Subklasse von TADOTable zu erstellen, welche im Hintergrund eine TADOQuery verwendet. Jedoch hab ich mich bisher nur sehr wenig mit ADO beschäftigt und kann die Schwierigkeiten kaum abschätzen. Es stellt sich schließlich auch die Frage, ob dies überhaupt möglich ist und zu einer Lösung führt?
Ich wäre sehr dankbar, wenn mich jemand beraten könnte. Danke :-)
Comment