Criar tabela paradox via programaçao

22/09/2004

Olá Gostaria de Saber como faz para criar uma tabela via programaçao sendo que existe campos na tabela com o valor default 0. Alguem saberia falar como eu faço para colocar um campo com o valor default na tabela.


Djedy2005

Melhor resposta

01/10/2004

OI, desculpa ter demorado a responder, mas tava numa semana de provas... duas provas e 500páginas de livro pra estudar... :)

Bem, o bd Paradox não é muito compatível com SQL, pra evitar esses problemas eu uso ADO ou interbase, mas vamos ao que interessa:

Eu testei o código, já que não tinha testado antes...saiu tudo direto da cabeça... :lol:
A primeira parte do codigo ta certa:

CREATE Table "nome.db"(campo1 Varchar(100), campo2 SmallInt)

Eu testei o resto e vi na ajuda do Delphi que ele aparentemente não aceita muito bem Constraints...entao vai ter que ser na mão!

Esse código é todo em delphi, ao inves de SQL. Primeiro joga uma Table (não esqueça que o nome do componente Table no delphi tem que ser o mesmo do codigo) no formulario sem configurar nada pelo Object Inspector, depois em algum botao criar esse codigo (Esse código eu peguei na ajuda do Delphi mesmo, então se a Borland não dá jeito, nem eu!) :

var
Field2: TField;{campo que vai conter o valor padrao, vc pode colocar mais de um campo separando por virgula assim: Field1, Field2, Field3: TField;}
begin
if not Table1.Exists then  //checar se a tabela ja existe
begin
  with Table1 do
  begin
    Active := False;  //a tabela não pode estar ativa
    //primeiro configure o tipo de tabela e o nome:
    DatabaseName := ´DEMO´;{alias do db, mais em baixo eu coloquei como vc pode criar um alias por codigo}
    TableType := ttParadox;
    TableName := ´CustInfo´;
    //inserir campos na tabela
    with FieldDefs do
    begin
      Clear;
      Add(´Field1´, ftInteger, 0, True);//Nome do campo, tipo, tamanho e se 
      Add(´Field2´, ftString, 30, False);{é obrigatório (True) ou se pode ser  nulo (False)}
    end;
   //agora para colocar indices
    with IndexDefs do
    begin
      Clear;
      //o primeiro indice não pode ter nome pq é o primário
      Add(´´, ´Field1´, [ixPrimary, ixUnique&93;);
      Add(´Fld2Indx´, ´Field2´, &91;ixCaseInsensitive&93;);
    end;
    Field2.DefaultExpression:=´10´; {valor padrao do campo, isso fui eu que acrescentei, não se esqueça de declarar cada campo(pelo nome) em var como TField, so pra garantir...}
    CreateTable;
  end;
end;



Para criar o Alias (trabalhoso, né...):|
Inclua na seção uses: DB

// se o alias não existir... 
begin
if not Session.IsAlias(´DEMO´) then
begin
Session.AddStandardAlias(´DEMO´,ExtractFilePath(ParamStr(0)), ´PARADOX´);// Adiciona o alias
Session.SaveConfigFile; // Salva o arquivo de configuração do BDE
end;
end;


UFA!:shock:

Espero que agora vá... Se precisar de mais alguma coisa tamos aí! :wink:


Samth

Responder Citar

Outras Respostas

22/09/2004

Samth

Usa o comando SQL Create Table.
No proprio comando SQL você pode colocar uma valor automático para os campos criados como por exemplo (eu não testei esse código, mas acho que funciona):

Create Table ´Nome.db´ (nome_do_campo VarChar(100) Default ´ValorPadrao´, campo2 Smallint), Constraint z PrimaryKey (nome_do_campo))

Você também pode criar uma Constraint em separado, como:

Constraint Default ´ValorPadrao´ for nome_do_campo;

Não se esqueça de adicionar o comando SQL.Exec no Delphi pra ele realizar a query.


Espero ter ajudado. ;-) Se não funcionar me avisa!
Samth


Responder Citar

23/09/2004

Djedy2005

Testei estes comandos mas não deu certo.


Responder Citar

11/04/2016

Gaitolini

Olá, estou Criando um sistema para fins didáticos no qual o meu Banco de dados paradox é criado desta forma em tempo de execução, porém quero aprimorar o processo.
O meu processo consiste em chamar métodos que verificaram e altere(caso precise) os Fields e índices toda vez que é iniciado a aplicação para garantir estatura de dados da tabela caso estejam diferentes ou corrompidos sem perder os dados já contidos nas tabelas
Acham que chamam de sistemas arqBasicos.

Delphi7 + paradox

Sistema de cadastro O.O. Com Dao e datamodules
Responder Citar

12/04/2016

Raylan

2016, criando sistema, usando paradox. Porque?
Use Firebird, PostgreSQL, etc..
Responder Citar