Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TADOTable, TableDirect, SQL in TableName, SQL Server

  Alt 16. Sep 2009, 07:46
Hallo,

du könntest Views benutzen.

Create View_1 as
SELECT col1, col2 FROM tab

Per $IFDEF steh dann

Delphi-Quellcode:
{$IFDEF SQL_SERVER}
t.TableDirect := False;
t.TableName := 'View_1';
{$ELSE}
t.TableDirect := True;
t.TableName := 'SELECT col1, col2 FROM tab';
{$ENDIF}
Nicht schön, geht aber

Weil das so blöd aussieht,
würde ich das eher so machen

Einmalig
Delphi-Quellcode:
{$IFDEF SQL_SERVER}
const C_TableDirect = False;
{$ELSE}
const C_TableDirect = True;
{$ENDIF}
"Tabellen"-Namen
Delphi-Quellcode:
{$IFDEF SQL_SERVER}
const C_ViewX = 'View_1';
{$ELSE}
const C_ViewX = 'SELECT col1, col2 FROM tab';
{$ENDIF}

Und im Code sieht es dann so aus.
Delphi-Quellcode:
t.TableDirect := C_TableDirect;
t.TableName := C_ViewX;
Du musst per Grep nur alle TableDirect-Zeilen suchen
und entsprechend anpassen.

Dass der SQL-Server andere SQL-Statements hat,
ist mir auch klar. Aber es wäre ein Anfang.
Die Korrektheit der Statements kannst du nur durch Testen
(idealerweise Unit-Test) prüfen.

Dadurch, dass du eh jede Stelle ändern musst,
kannst du es dann auch gleich nach dem Ändern testen.


Heiko
Heiko
  Mit Zitat antworten Zitat