Fórum Migrar dados do Access para Interbase #385747

06/09/2010

0

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.
Leonardo Xavier

Leonardo Xavier

Responder

Posts

09/09/2010

Eduardo Marcolongo

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)
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.
Responder

Gostei + 0

09/09/2010

Leonardo Xavier

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar