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:
Delphi-Quellcode:
t := TADOTable.Create(nil);
t.ConnectionString := <<ConnectionString>>
t.TableDirect := True;
t.TableName := 'SELECT col1, col2 FROM tab';
t.Open;
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