Fórum Criar BD Firebird pelo sistema #327568
16/08/2006
0
gostaria de saber como criar um Banco de Dados Firebird atraves da minha aplicacao.
Nao quero por junto no Install Shield pois nao quero que o Install Shield apague o BD quando o sistema for desinstalado (por segurança).
Ja me disseram que eu preciso conectar ao security.fdb e depois rodar o script de criação do meu banco. Mas tem um problema: Como faço pra saber o caminho do security.fdb? pois pode estar no c:, d:, arquivos de programas, program files, etc.
Valeusgs.
Henriquedb
Curtir tópico
+ 0Posts
17/08/2006
Fabiano Góes
tenho aqui uma rotina pra criar um banco de dados Firebird,
espero que possa ajuda-lo:
procedure CreateDataBase(DataSource : String); var DataBase : TIBDatabase; begin DataBase := TIBDatabase.Create( nil ); try try with DataBase do begin DatabaseName := DataSource; SQLDialect := 3; Params.Clear; Params.Add(´USER ´´SYSDBA´´´); Params.Add(´PASSWORD ´´masterkey´´´); Params.Add(´PAGE_SIZE 4096´); Params.Add(´DEFAULT CHARACTER SET ISO8859_1´); CreateDatabase; end; // withDataBase do finally FreeAndNil( DataBase ); end; except on E: Exception do Application.MessageBox( pChar( E.Message ), ´Create DataBase´, MB_OK+MB_ICONERROR); end; // try end; // procedure CreateDataBase(const DataBaseName: String);
uma braço !!!!
Gostei + 0
17/08/2006
Henriquedb
mas eu ainda preciso saber o caminho do security.fdb pois a sua funcao tambem ira precisar estar conectada a um BD para poder criar outro BD. Este que é o problema.
Em resumo, só preciso pegar o caminho de instalação do FB no registro do sistema. Depois fica facil, é só conectar a ele e rodar o script de criação do BD que eu quero.
Te mais.
Gostei + 0
18/08/2006
Delfai
procedure TForm1.Button1Click(Sender: TObject);
begin
with IBDatabase1 do
begin
SQLDialect := 3;
DatabaseName := ´Localhost:C:\DADOS.FDB´;
Params.Clear;
Params.Add(´USER ´´SYSDBA´´´);
Params.Add(´PASSWORD ´´masterkey´´´);
Params.Add(´PAGE_SIZE 4096´);
Params.Add(´DEFAULT CHARACTER SET ISO8859_1´);
try
CreateDatabase;
except
ShowMessage(´Deu porco !´);
end;
end;
end;
Gostei + 0
18/08/2006
Delfai
procedure TForm1.Button2Click(Sender: TObject);
begin
IBTransaction1.DefaultDatabase:= IBDatabase1;
IBQuery1.Database:= IBDatabase1;
IBQuery1.Transaction:= IBTransaction1;
with IBQuery1 do
begin
SQL.Clear;
SQL.Add(´CREATE TABLE DINHEIRO (LANCAMENTO CHAR(10) NOT NULL,OBSERVACAO VARCHAR(20),DATA DATE);´);
try
ExecSQL;
except
ShowMessage(´Deu porco !´);
end;
end;
end;
Gostei + 0
18/08/2006
Delfai
procedure TForm1.Button3Click(Sender: TObject);
begin
with IBQuery1 do
begin
SQL.Clear;
SQL.Add(´ALTER TABLE DINHEIRO ADD CONSTRAINT PK_LANCAMENTOS PRIMARY KEY (LANCAMENTO);´);
try
ExecSQL;
except
ShowMessage(´Deu porco !´);
end;
end;
end;
Testei as tres dicas e aqui funcionou(Delphi 7 + Firebird 1.5), coloquei cada coisa em um Button, assim fica mais fácil para os outros usuários entenderem, poderia colocar em um evento OnShow por exemplo, mas antes era bor ver se o DB e/ou Tabelas existem mas, para isso, teria que tentar se conectar a ele e não simplesmente ver se o arquivo existe.
Espero ter ajudado, sou iniciante e conhecí o Firebird a apenas duas semanas através da Internet, basicamene só sei fazer isso por enquanto, estou usando o DB Access mas queria trabalhar com o FB; o pouco que aprendo, tento colocar no fórum para ajudar outros como eu.
Valeu !
:D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)