Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 251491
            [titulo] => Criar tabela paradox via programaçao
            [dataCadastro] => DateTime Object
                (
                    [date] => 2004-10-01 00:00:00
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 236027
            [status] => A
            [isExample] => 
            [NomeUsuario] => Samth
            [Login] => forum.Samth
            [Apelido] => 
            [Foto] => 
            [Conteudo] => 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:

[code:1:3c311d37e7]CREATE Table "nome.db"(campo1 Varchar(100), campo2 SmallInt)[/code:1:3c311d37e7]
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!) :

[code:1:3c311d37e7]
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;[/code:1:3c311d37e7]


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

[code:1:3c311d37e7]// 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;[/code:1:3c311d37e7]

UFA!:shock:

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


) )

Criar tabela paradox via programaçao

Djedy2005
   - 22 set 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.


Post mais votado

Samth
   - 01 out 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:

#Código

:1:3c311d37e7]CREATE Table "nome.db"(campo1 Varchar(100), campo2 SmallInt)
:1:3c311d37e7]
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!) :

#Código
:1:3c311d37e7]
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;
:1:3c311d37e7]


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

#Código
:1:3c311d37e7]// 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;
:1:3c311d37e7]

UFA!:shock:

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


Samth
   - 22 set 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


Djedy2005
   - 23 set 2004

Testei estes comandos mas não deu certo.


Gaitolini
   - 11 abr 2016

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

Raylan
   - 12 abr 2016

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