Fórum Criar Base de Dados via Delphi #366716
04/12/2008
0
Onhide86
Curtir tópico
+ 0Posts
04/12/2008
Max2006
1 - Coloque o Componente IBDatabase1 da palheta IBX no formulario...
2- Coloque um botão no formulário e no evento Onclick no botão coloque este código...
procedure TForm1.Button1Click(Sender: TObject);
begin
with IBDatabase1 do
begin
SQLDialect := 3;
DatabaseName := ´C:\MEUBANCO.GDB´;
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
{tratamento de erro}
end;
end;
3 - Para Criar a Tabela Via código.... (este exemplo eu coloquei que você pode criar a tabela com o SQLQuery da palheta IBX mas pode usar o componente IBQuery da palheta IBX.
após criar o DataBase, você abre uma conexão com o mesmo através do TSQLConnection, e com um TSQLQuery você cria as tabelas tipo:
Código: (antes coloque
procedure CreateTable(ACon: TSQLConnection; AScriptSQL: string);
var
QRY: TSQLQuery;
begin
QRY := TSQLQuery.Create(nil);
try
ACon.Open;
QRY.SQLConnection := ACon;
with QRY do
begin
Close;
SQL.Clear;
SQL.Text := AScriptSQL;
ExecSQL();
end;
finally
ACon.Close;
FreeAndNil(QRY);
end;
ai um metodo para verificar se a tabela já existe antes de cria-la:
Código:
function TableExist(ACon: TSQLConnection; ATableName: string): Boolean;
var
List: TStrings;
i : integer;
begin
Result := False;
List := TStringList.Create;
try
ACon.Open;
ACon.GetTableNames(List);
for i := 0 to List.Count - 1 do
begin
if UpperCase(List.Strings[i]) = UpperCase(ATableName) then
Result := True;
end;
finally
List.Free;
ACon.Close;
end;
end;
então você pode usar assim:
Código:
begin
if not FileExists(´MEUBANCO.GDB´) then
CreateDataBase(´MEUBANCO.GDB´);
// aqui você configura o objeto TSQLConnection para se conectar com o DataBase: ´C:\teste.fdb´
if not TableExist(´TableName´) then
CreateTable(SQLConnection, SeuScriptSQL);
Eu nunca tentei, mas acredito que possa...
Tente inserir o arquivo de criação de banco de dados que o Firebird oferece para dentro do seu executável e crie o seu banco então você não precisa-rá usar o IBX para criar o ´Firebird´ ou o ´Interbase´. Então precisa-rá só do DBX para criar as Tabelas com SQLQuery...
Espero ter ajudado...
Gostei + 0
04/12/2008
Onhide86
Abraço.
Gostei + 0
04/12/2008
Max2006
Pequise aqui no Site, se não achar olhe no Google...
Gostei + 0
04/12/2008
Onhide86
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)