Fórum Paradox? Posso utilizar isso ainda? #349571
24/11/2007
0
Gilson.pontes
Curtir tópico
+ 0Posts
24/11/2007
Edilcimar
Gostei + 0
24/11/2007
Gilson.pontes
no after post e no after delete...
//
var i: LongInt;
begin
with Table1 do
begin
i := Fields(0).AsInteger;
Close;
Open;
Locate(´Registro´, i, []);
end;
end;
Comecei a utilizar o Firebird, mas esbarrei, p. exemplo, na situação de duplo acesso.... No paradox, qdo vc coloca a tabela em ´edit´, o paradox não permite que outro usuário tb a coloque em ´edit´. No firebird, isso é permitido e aí...... (?) Também achei um tanto complexa a configuração para utilizá-lo em rede... Não achei muita coisa (que realmente explicasse direitinho) na internet sobre o assunto.
Bem..... vou continuar a pesquisar e fazer experiências com o firebird... pelo visto, terei que aprender esse negócio mesmo.... Tá todo mundo usando.....
Abraço..... e obrigado pela resposta.... té+
Gostei + 0
24/11/2007
Edilcimar
Gostei + 0
24/11/2007
Jocelio
no after post e no after delete...
//
var i: LongInt;
begin
with Table1 do
begin
i := Fields(0).AsInteger;
Close;
Open;
Locate(´Registro´, i, []);
end;
end;
Poderia me explicar o porquê do Locate ?
Obrigado.
Jocelio
Gostei + 0
25/11/2007
Jcol_info
DbiSaveChanges((DataSet as TTable).Handle);
dessa forma, todos os registros serão salvos em disco após um Post ou um Delete.
Inclua na sessão uses a unit BDE.
Eu uso Paradox desde 1998 e nunca tive corrupção de arquivos.
Gostei + 0
25/11/2007
Gilson.pontes
o Locate é para que a tabela volte para o registro em que estava antes de ser fechada. Por isso capturo o Registro (ou código - como queira), salvo em uma variável inteira e depois utilizo o valor que está nessa variável para voltar ao registro. Se não fizer o locate, ao reabrir a tabela, ela simplesmente fica no primeiro registro.
Ao amigo Jco_info...
Não conhecia esse comando. Vou testá-lo. Como diz um progrmador com quem tenho contato de vez em quando, a rotina por mim criada nada mais é que um ´P.O.G.´ (programação orientada a gambiarras)..... uma alusão ao P.O.O. (programação orientada a objeto)...... eh eh eh.... aposto que não é mais ´pogado´ que o windows....
Abraço a todos.
Gostei + 0
27/11/2007
Jcol_info
eu também utilizava uma rotina parecida. Aprendi sobre este comando num santo forum desses por aí!
Gostei + 0
03/12/2007
Daykas
Quanto a poder usar, se quiser, pode usar até arquivos de texto, mas precisa ficar atento para as tecnologias que as atuais necessidades necessitam e, sendo assim, paradox já estaria ultrapassado demais para utilizá-lo.
Gostei + 0
04/12/2007
Jcol_info
Mas se vai desenvolver um sistema novo ou até se pretende melhorar um sistema já existente, estude novas tecnologias, vc terá mais recursos, com toda certeza, abandone o Paradox.
Abraços.
Gostei + 0
04/12/2007
Gilson.pontes
Então... já q estou começando c/ o Firebird... vamos lá...
Criei alguns Trigger´s (opa.... vejam só, progredi, já estou até fazendo trigger... eh eh eh) de autoincremento de ´REGISTRO´ nas diversas tabelas. Até aí tudo bem.... Porém... ao chamar o evento Post, após a inclusão de um cliente, p. exemplo, esse ´REGISTRO´ não aparece, mesmo se, após o evendo post (afterpost) eu puser um CommitRetaining no TIBTransaction..... (a impressão q eu tenho, é que não está sendo gravado fisicamente no disco o registro inserido, por isso ele não está retornando o ´REGISTRO´ gerado pelo trigger).
Nesse caso, ao inserir um novo registro de telefone (que é tabela ´filha´ - detalhe), preciso iniciar (afterinsert) com a atribuição do ´REGISTRO´ da tabela clientes no ´REG_CLIENTE´ da tabela Telefones (p/ manter a integridade referencial)..... certo? Como ainda ´não existe´ o ´REGISTRO´ da tabela Clientes, o ´REG_CLIENTE´ da tabela telefones com valor 0 e dá erro se eu executar Post nela, dizendo que não existe referencia da chave estrangeira da tabela telefones na tabela clientes.
P/ eu começar c/ o pé direito nesse negócio, alguém pode me dar uma ´luz´....
Abraço a todos....
Gostei + 0
05/12/2007
Gandalf.nho
Gostei + 0
06/12/2007
Gilson.pontes
Há uma propriedade do IBDataSet chamada GeneratorField que ´traz´ o ´REGISTRO´ da tabela ´CLIENTE´ gerado no Genarator do firebird. Aliás, nem precisa fazer nenhuma trigger p/ gerar o ´REGISTRO´, basta essa propriedade estar configurada. Com relação ao ´REG_CLIENTE´ da tabela ´TELEFONES´, nesse caso teria duas opções:
1ª -> Colocar uma IBTable (p/ TELEFONES) que possuem as propriedades ´MasterSource´ e ´MasterField´ - portanto fazem essa dependência - e com isso, gera o ´REG_CLIENTE´ na tabela ´TELEFONES´ automaticamente, a partir do ´REGISTRO´ da tabela ´CLIENTES´.
2ª -> Utilizar o IBDataSet (IBDataSetTelefones), e, no seu evento afterpost, atribuir ao field ´REG_CLIENTE´, o field ´REGISTRO´ da tabela ´CLIENTES´.
De qualquer forma.... agradeço.... e, é claro, continuo aceitando sujestões... essas são SEMPRE bem vindas....
Gostei + 0
07/12/2007
Gilson.pontes
não consigo editar*, nem deletar*... ele altera/deleta após o post/delete, dou commit (ou commitretraing). Porém, ao abrir a tabela novamente, o registro está lá do mesmo jeito (como se não tivesse feito nada).
(*utilizando IBDataSet) - se eu utilizar o IBTable, consigo salvar edição e/ou deletar registro normalmente.
Viram.... continuo precisando de sujestões....... Eita Firebird..... mas eu não desisto....
Gostei + 0
07/12/2007
Gilson.pontes
2ª -> Utilizar o IBDataSet (IBDataSetTelefones), e, no seu evento AFTERINSERT (e não afterpost), atribuir ao field ´REG_CLIENTE´, o field ´REGISTRO´ da tabela ´CLIENTES´.
desculpem-me.....
Gostei + 0
07/12/2007
Gandalf.nho
Quanto ao problema de atualizar/excluir, dê uma conferida nas SQLs geradas para essas propriedades, para ver se estão corretas.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)