Migrar dados do Access para Interbase
Pessoal do fórum,
Estou migrando meus sistemas antigos com banco de dados em Access para o Firebird, consegui alguns sofwares para transaformar o banco de dados do Access para SQL, mas o problema é que os dados ja cadastrados no Access não migram. Como posso converter o banco Access com os mais de mil clientes cadastrados para o Firebird. Desde ja agradeço a todos. O sistema que utilizei para a conversão foi o " access2sql ". Não conheço muito este sistema mas se alguem conhecer ele e tiver como me passar alguma configuraração para converter o conteúdo das tabelas agradeço.
Estou migrando meus sistemas antigos com banco de dados em Access para o Firebird, consegui alguns sofwares para transaformar o banco de dados do Access para SQL, mas o problema é que os dados ja cadastrados no Access não migram. Como posso converter o banco Access com os mais de mil clientes cadastrados para o Firebird. Desde ja agradeço a todos. O sistema que utilizei para a conversão foi o " access2sql ". Não conheço muito este sistema mas se alguem conhecer ele e tiver como me passar alguma configuraração para converter o conteúdo das tabelas agradeço.
Leonardo Xavier
Curtidas 0
Respostas
Eduardo Marcolongo
06/09/2010
Porque vc não cria uma aplicação com uma conexão ADO ligando seu mdb e gera um arquivo texto ou manda direto para o gdb ?
Ou cria um ODBC e configura um database, table e datasource da guia BDE e gera em TXT
Segue abaixo um exemplo de um programa que fiz para esta finalidade. Exportar dados do mdb para txt (so que no caso a base de dados de destina era DataFlex, por isto o TXT)
Ou cria um ODBC e configura um database, table e datasource da guia BDE e gera em TXT
Segue abaixo um exemplo de um programa que fiz para esta finalidade. Exportar dados do mdb para txt (so que no caso a base de dados de destina era DataFlex, por isto o TXT)
unit uexport;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, Grids, DBGrids, DBTables, ExtCtrls, DBCtrls, Mask;
type TForm1 = class(TForm) Table1: TTable; DBGrid1: TDBGrid; DataSource1: TDataSource; Button1: TButton; DBMemo1: TDBMemo; DBNavigator1: TDBNavigator; Edit1: TEdit; Memo1: TMemo; ComboBox1: TComboBox; server: TDatabase; Edit2: TEdit; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button2Click(Sender: TObject); private function linhainteira(ifield:integer) : string; { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);var sfile : textfile; x : integer; slinha : string;begin assignfile(sfile,'c:\'+trim(edit2.text)+'.txt'); rewrite(sfile); while not datasource1.dataset.eof do begin for x := 1 to datasource1.dataset.fields.count do begin slinha := datasource1.dataset.fields.fieldbynumber(x).text; if datasource1.dataset.fields.fieldbynumber(x).isblob then slinha := linhainteira(x); if datasource1.dataset.fields.fieldbynumber(x).datasize > 250 then slinha := linhainteira(x); slinha := trim(slinha); slinha := stringreplace(slinha,';','',[rfignorecase,rfreplaceall]); slinha := slinha + ';'; if x <> datasource1.dataset.fields.count then write(sfile,slinha) else writeln(sfile,slinha); end; datasource1.dataset.next; end; closefile(sfile);end;
procedure TForm1.FormCreate(Sender: TObject);beginserver.Connected := true;server.GetTableNames(combobox1.items);end;
procedure TForm1.ComboBox1Change(Sender: TObject);begindbmemo1.datafield:= '';table1.active := false;table1.tablename := combobox1.text;table1.active := true;edit2.text := trim(combobox1.text);end;
function TForm1.linhainteira(ifield:integer) : string;var i : integer; slinha : string;beginedit1.text := '';dbmemo1.datafield := datasource1.dataset.fields.fieldbynumber(ifield).DisplayName;memo1.lines := dbmemo1.lines;if datasource1.dataset.fields.fieldbynumber(ifield).DataSize > 250 then memo1.lines.add(datasource1.dataset.fields.fieldbynumber(ifield).value);for i := 0 to memo1.lines.count do edit1.text := trim(edit1.text) + ' ' + (trim(memo1.lines[i]));result := edit1.text;end;
procedure TForm1.Button2Click(Sender: TObject);beginedit2.text := inttostr(datasource1.dataset.fields.fieldbynumber(1).DataSize);end;
end.GOSTEI 0
Leonardo Xavier
06/09/2010
Obrigado pela sua dica mas consegui neste final de semana migrar meus dados, Fuidiretamente pelo Access e importei minhas tabelas para Excel e depois apra Txt e deu certo. mas muito obrigado pela sua dica. E depois que eu fiz todo este rolo, eu descobri como fazer isso diretamente pelo access2sql. Mas valew mesmo.
GOSTEI 0