UniScript multi commands
Posted: Sun 27 Nov 2011 19:01
I use the following UniScript for renaming a table - it works OK for MySQL and SQLite but the MS Access doesn't run. If I remove the 'DROP TABLE..' it runs but I then have double tables. Any input to a method to use?
procedure TUniDAC.TableRename(const aOldTable, aNewTable: string);
begin
try
With frmDBConn.uniScript Do
try
begin
SQL.Clear;
SQL.Add(' {IF Access} ');
SQL.Add(' SELECT * INTO ' + aNewTable + ' FROM ' + aOldTable);
SQL.Add(' DROP TABLE ' + aOldTable);
SQL.Add(' {ELSE} ');
SQL.Add(' ALTER TABLE ' + aOldTable);
SQL.Add(' RENAME TO ' + aNewTable);
SQL.Add(' {ENDIF} ');
SQL.Add(' ;');
Execute
end;
except
on E:exception do
Logfile.Database('TUniDAC.TableRename: ' + E.Message);
end;
finally
end;
end;
procedure TUniDAC.TableRename(const aOldTable, aNewTable: string);
begin
try
With frmDBConn.uniScript Do
try
begin
SQL.Clear;
SQL.Add(' {IF Access} ');
SQL.Add(' SELECT * INTO ' + aNewTable + ' FROM ' + aOldTable);
SQL.Add(' DROP TABLE ' + aOldTable);
SQL.Add(' {ELSE} ');
SQL.Add(' ALTER TABLE ' + aOldTable);
SQL.Add(' RENAME TO ' + aNewTable);
SQL.Add(' {ENDIF} ');
SQL.Add(' ;');
Execute
end;
except
on E:exception do
Logfile.Database('TUniDAC.TableRename: ' + E.Message);
end;
finally
end;
end;