Criar tabela paradox via programaçao
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
Curtidas 0
Melhor post
Samth
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:
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!) :
Para criar o Alias (trabalhoso, né...):|
Inclua na seção uses: DB
UFA!:shock:
Espero que agora vá... Se precisar de mais alguma coisa tamos aí! :wink:
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]); Add(´Fld2Indx´, ´Field2´, [ixCaseInsensitive]); 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:
GOSTEI 1
Mais Respostas
Samth
22/09/2004
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
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
GOSTEI 0
Djedy2005
22/09/2004
Testei estes comandos mas não deu certo.
GOSTEI 0
Anderson Gaitolini
22/09/2004
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
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
GOSTEI 0
Raylan Zibel
22/09/2004
2016, criando sistema, usando paradox. Porque?
Use Firebird, PostgreSQL, etc..
Use Firebird, PostgreSQL, etc..
GOSTEI 0