Index Paradox...

Delphi

19/02/2003

Saudações,
criei um indexname de uma table paradox com o nome ´Elias´ e ele está acusando quando executo o programa que este index está somente para leitura...como posso resolver isso? Alguém pode me ajudar? Precso muito de ajuda porque ainda estou aprendendo e preciso terminar isso logo pra poder gerar comissões de corretores...


Elias Jr

Elias Jr

Curtidas 0

Respostas

Carnette

Carnette

19/02/2003

Por acaso voce quando criou no DATABASE DESKTOP o arquivo não marcou a opção MAINTENED


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Saudações,
eu não marquei esta opção porque fui em secondary indexes e após eu escolher os campos escola e parcela ele me pede um index pra estes campos aí eu pus o meu nome mas esta opção está desabilitada...porque? Não é por aí que eu tenho que criar? Vc pode me ajudar?


GOSTEI 0
Carnette

Carnette

19/02/2003

volta lá no database desktop e abra seu arquivo de indice e marque esta opção...pode ser por aí...


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Olha eu tinha marcado antes a opção case sensitive...mas mesmo que eu não tivesse marcado nada...esta opção que vc me falou está desabilitada...e já fica assim quando eu entro em secondary indexes...


GOSTEI 0
Carnette

Carnette

19/02/2003

Tô tentando imaginar o que voce fez aí meu bruxo...pois aqui, eu HABILITO e DESABILITO esta opção...o correto é deixar ela habilitada...mas, eu ainda não sei se voce consegue isto....está TRANCADA esta opção ??


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Olha, consegui habilitar...tive que clicar em unique duas vezes (habilitando e desabilitando) aí o maintained apareceu...quando seleciono ele o database diz que eu preciso de um indice primário, como faço isso...e outra coisa neste caso em que uso os fields escola e parcela...devo pôr case sensitive? Valeu pela ajuda, ainda estou aprendendo...


GOSTEI 0
Carnette

Carnette

19/02/2003

aaaaahhhhh....agora sim...voce tem que definir a CHAVE PRIMARIA dentro da propria tabela...vai no Database Desktop e seleciona o primeiro campo do teu arquivo como campo chave....ali onde está escrito KEY vc clica e define....


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Saca só quando eu tento por o campo escola(codigo da escola) como chave primária, a tabela se tranforma e muda de nome para Keyviol com 16K(a original tem 368K)...isso acontece quando eu ponho a chave primária...tem algo a ver com a propriedade secondary indexes?


GOSTEI 0
Carnette

Carnette

19/02/2003

Não..Não tem nada haver com a secundaria...é que a Chave Primaria...tem que ser UNICA..não pode ter repetição de registro...no seu caso CÓDIGO DA ESCOLA...o database só está a te dizer que foram encontrados 16 registros com o mesmo código e está descosirando..se, este é realmente seu campo chave....tudo bem....siga em frente...caso voce precise repetir o mesmo codigo de escola várias vezes...acrescente um campo AUTOINCREMENT depois do codigo da escola e click nele tambem na KEY...ai voce vai ter como campo CHAVE os campos CODIGO DA ESCOLA E O AUTOINCREMENT....NUNCA VAO SE REPETIR...

espero ter sido claro.....


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Valeu, cara, consegui resolver uma das broncas. Agora está executando sem dá erro algum...só que tem outro problema...são dois forms, um com uma grid em que fica armazanada a fatura a ser paga, quando damos um duploclique na grid, surge um segundo form em que colocamos a data de pagamento(maskedit) e confirmamos...no onclick do botão confirma tem uma linha e que faz com que a data de pgto caia direto na tabela(a que vc ajeitou) e a grid fique zerada sem a linha de fatura a pagar, mas isto não acontece, ele aceita sem dá erro mas não modifica nada,deu pra entender? Se vc quiser posso te mandar o fonte...quer dizer desmenbrar e te passar...valeu pela ajuda.


GOSTEI 0
Carnette

Carnette

19/02/2003

Coloca o seguinte no evento ONFILTERRECORD da Tabela que esta amarrado a Grid o seguinte


Accept := DataSet[´CAMPODATAPAGAMENTO´] <> nil;


e nesta mesma tabela voce coloca a propriedade FILTERED para TRUE

se quiser ver novamente TODOS no grid é só retornar o FILTERED para FALSE


GOSTEI 0
Elias Jr

Elias Jr

19/02/2003

Este é ocódigo que está no form de data e que quando confirmamos deveria por a fatura paga registrada na tabela:
procedure TFrmpaga.BitBtn1Click(Sender: TObject);
begin
tb_faturas.SetKey;
tb_faturas.FieldByName(´escola´).AsInteger := escola;
tb_faturas.FieldByName(´parcela´).AsString := parcela;
tb_faturas.gotokey;
tb_faturas.edit;
tb_faturas[´data_pagamento´]:= strtodate(maskedtPG.text);
tb_faturas.post;
Frmpaga.release;
Frm_PagaFaturas.Qy_faturas.close;
Frm_PagaFaturas.Qy_faturas.Open;
end;
Isto está certo ou falta alguma coisa? Valeu.....


GOSTEI 0
POSTAR