Criar tabela paradox via programaçao
22/09/2004
0
Djedy2005
Post 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
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
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
12/04/2016
Raylan Zibel
Use Firebird, PostgreSQL, etc..
Clique aqui para fazer login e interagir na Comunidade :)