unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, DB, DBTables;
type
Tmainfrm = class(TForm)
cbbox: TComboBox;
mmo1: TMemo;
btncreateCMD: TButton;
btnsalindata: TButton;
tblparadox: TTable;
tblAdo: TADOTable;
ADOcon1: TADOConnection;
ADOcmd: TADOCommand;
procedure FormCreate(Sender: TObject);
procedure btncreateCMDClick(Sender: TObject);
function AccessType(fd: TFieldDef): string;
procedure btnsalindataClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mainfrm: Tmainfrm;
implementation
{$R *.dfm}
//---- fungsi menterjemahkan datatype paradox---> access mins paradox: string-- access: text
function Tmainfrm.AccessType(fd: TFieldDef): string;
begin
case fd.DataType of
ftString: Result := 'TEXT(' inttostr(fd.Size) ')';
ftSmallint: Result := 'SMALLINT';
ftInteger: Result := 'INTEGER';
ftWord: Result := 'WORD';
ftBoolean: Result := ' YESNO';
ftFloat: Result := 'FLOAT';
ftCurrency: Result := ' CURRENCY';
ftDate, ftTime, ftDateTime: Result := 'DATETIME';
ftAutoInc: Result := 'COUNTER';
ftBlob, ftGraphic: Result := 'LONGBINARY';
ftMemo, ftFmtMemo: Result := 'MEMO';
else
Result := 'MEMO';
end;
end;
procedure Tmainfrm.FormCreate(Sender: TObject);
begin
session.GetTableNames('dbdemos', '*.DB', False, False, cbbox.Items);
end;
procedure Tmainfrm.btncreateCMDClick(Sender: TObject);
var
i: Integer;
s: string;
begin
tblparadox.TableName := cbbox.Text;
tblparadox.FieldDefs.Update;
s := 'CREATE TABLE' tblparadox.TableName '(';
with tblparadox.FieldDefs do
begin
for i := 0 to Count - 1 do
begin
s := s '' items[i].Name;
s := s '' AccessType(Items[i]);
s := s ',';
end;
s[Length(s)] := ')';
end;
mmo1.Clear;
mmo1.Lines.Add(s);
end;
procedure Tmainfrm.btnsalindataClick(Sender: TObject);
var
i: Integer;
tblname: string;
begin
tblname := cbbox.Text;
//----------------refresh
btncreateCMDClick(Sender);
// --------------drop tabel diperlukan jika tabel sudah ada dan di hapus , buang jika tabel belum ada
ADOcmd.CommandText := 'DROP TABLE' tblname;
ADOcmd.Execute;
// ----------------------buat baru
ADOcmd.CommandText := mmo1.Text;
ADOcmd.Execute;
tblAdo.TableName := tblname;
// -----------------salin data
tblparadox.Open; //---- buka tabel paradox
tblAdo.Open; //------- buka tabel MSAccess
try
while not tblparadox.Eof do
begin
tblAdo.Insert;
for i := 0 to tblparadox.Fields.Count - 1 do
begin
tblAdo.FieldByName(tblparadox.FieldDefs[i].Name).Value :=
tblparadox.Fields[i].Value;
end;
tblAdo.Post;
tblparadox.Next;
end;
finally
tblparadox.Close;
tblAdo.Close;
end;
end;
end.