Como criar tabelas em tempo de execução ?

Delphi

25/03/2004

Pessoal, minha dúvida eh como eu posso criar tabelas (exemplo paradox) apartir do momento que eu executo meu sistema, assim quando eu tentar utilizar o programa em uma máquina diferente, só precisarei copiar o executável.

E se alguem tiver paciência podem me informar como eu posso manipular o prompt do MS-DOS, apartir de meus sistemas.

Grato, Adeilson Alves - Tec. em Desenvolvimento de Software - CEFET/RN


Adeilson_alves

Adeilson_alves

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

25/03/2004

[b:7ef78fb08e]Criar uma tabela (DB, DBF) através do seu programa[/b:7ef78fb08e]
Inclua na seção uses: dbTables, DB
procedure CriaTabelaClientes;
var
  Tabela: TTable;
begin
  Tabela := TTable.Create(Application);
  try
    Tabela.DatabaseName := ´C:\´;
    { ou Tabela.DatabaseName := ´NomeAlias´; }

    Tabela.TableName := ´Clientes.DB´;
    Tabela.TableType := ttParadox; { ou ttDBase }

    { Somente Delphi4 }
    if Tabela.Exists then { Se a tabela já existe... }
      Exit;
    {***}

    { Cria a tabela }
    Tabela.FieldDefs.Add(´Codigo´, ftInteger, 0, true);
    Tabela.FieldDefs.Add(´Nome´, ftString, 30, true);
    Tabela.FieldDefs.Add(´DataNasc´, ftDate, 0, false);
    Tabela.FieldDefs.Add(´RendaMes´, ftCurrency, 0, false);
    Tabela.FieldDefs.Add(´Ativo´, ftBoolean, 0, true);
    { etc, etc, etc }
    Tabela.CreateTable;

    { Cria os Índices }
    Tabela.AddIndex(´ICodigo´, ´Codigo´, [ixPrimary, ixUnique]);
    Tabela.AddIndex(´INome´, ´Nome´, [ixCaseInsensitive]);
    { etc, etc, etc }
  finally
    Tabela.Free;
  end;
end;



GOSTEI 0
Adeilson_alves

Adeilson_alves

25/03/2004

quando eu tiver acabado o projeto, eu te enviarei uma copia para quem sabe vc possa aprender ou avaliar...


GOSTEI 0
Thiago Vidal

Thiago Vidal

25/03/2004

Para manipular o prompt do MS-Dos, uma solução quebra-galho que eu consegui foi criar um arquivo .BAT com a lista de comandos e depois executa-lo com a flag SW_HIDE no WinExec. Exemplo:

var
  ArqBat: TextFile;
begin
  AssignFile(ArqBat, ´arquivo.bat´);
  Rewrite(ArqBat);
  WriteLN(ArqBat, ´Primeiro comando do MS-Dos´);
  WriteLN(ArqBat, ´Segundo comando do Ms-Dos´);
  ...
  CloseFile(ArqBat);
  WinExec(PChar(´arquivo.bat´), SW_HIDE); // Talvez tenha mais algum parametro, nao lembro de cabeça.
  DeleteFile(´arquivo.bat´);
end;



GOSTEI 0
POSTAR