Arşiv Anasayfa Veritabanı İpuçları
Sayfalar: 1
DB - Tablo Adını Değiştirmek Gönderen: CMNSOFT Tarih: 13 October 2005 15:16:53
Belirtilen tablonun adını değiştirir. Bu fonksiyon kullanılırken, veri

tabanındaki referans sınırlamalarına dikkat edilmelidir. SQL tabanlı veri

tabanlarında, eğer tabloya referans eden başka veri tabanı nesneleri varsa,

tablonun silinmesine izin verilmeyecektir.


Codec By GeNiUS !

:
Function DBReNameTable(
  DatabaseName,
  TableNameOld,
  TableNameNew: String): Boolean;
Begin
  Result := True;
  Try
    If Not IsTable(DatabaseName, TableNameOld) Then
    Begin
      Result := False;
      Exit;
    End;

    {First Copy The Source Table To The New Table}
    If Not DBCopyTable(
             DatabaseName,
             TableNameOld,
             DatabaseName,
             TableNameNew) Then
    Begin
      Result := False;
      Exit;
    End;

    {Now Drop The Source Table}
    If Not DBDropTable(DatabaseName, TableNameOld) Then
    Begin
      Result := False;
      Exit;
    End;
  Except
    Result := False;
  End;
End;

{!~ Applies BatchMode Types As Appropriate To
Source and Destination Tables}
Function DBRecordMove(
           SourceDatabaseName,
           SourceTable,
           DestDatabaseName,
           DestTable: String;
           BMode: TBatchMode): Boolean;
var S : TTable;
    D : TTable;
    B : TBatchMove;
begin
  S := TTable.Create(nil);
  D := TTable.Create(nil);
  B := TBatchMove.Create(nil);
  try
    {Create The Source Table}
    S.Active       := False;
    S.DatabaseName := SourceDatabaseName;
    S.ReadOnly     := False;
    S.TableName    := SourceTable;
    S.Active := true;

    {Create The Destination Table}
    D.Active       := False;
    D.DatabaseName := DestDatabaseName;
    D.TableName    := DestTable;
    D.ReadOnly     := False;

    {Make the table copy}
    B.AbortOnKeyViol := False;
    B.AbortOnProblem := False;
    B.Destination    := D;
    B.Source         := S;
    B.Mode           := BMode;
    Try
      B.Execute;
    Except
    End;

    Result:= True;
  finally
    S.Free;
    D.Free;
    B.Free;
  end;
End;