Einzelnen Beitrag anzeigen

edwpi

Registriert seit: 16. Sep 2009
1 Beiträge
 
#1

TADOTable, TableDirect, SQL in TableName, SQL Server

  Alt 16. Sep 2009, 08:26
Datenbank: MS Access, Sqlbase, Sql Server • Zugriff über: ADO
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
  Mit Zitat antworten Zitat