Fórum Criar tabela paradox via programaçao #251488
22/09/2004
0
Djedy2005
Curtir tópico
+ 0Post mais votado
01/10/2004
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:
Samth
Gostei + 1
Mais Posts
22/09/2004
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
23/09/2004
Djedy2005
Gostei + 0
11/04/2016
Anderson Gaitolini
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
12/04/2016
Raylan Zibel
Use Firebird, PostgreSQL, etc..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)