FM SOLUÇÕES - (31) 3761-3490
Seja bem vindo ao Fórum FM Soluções!!

Aqui você poderá postar suas dúvidas, experiências e ainda baixar e postar roteiros e tutoriais não oficiais sobre os módulos da RM Sistemas.

E ainda, conhecer um pouco sobre os nossos produtos e serviços!!!
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Últimos assuntos
» Relatorio Rm reports / Holerite salario
Ter 18 Out 2016 - 8:09 por Gárgio

» DEFAULT NO CADASTRO DE FUNCIONARIOS RM LABORE
Sex 7 Out 2016 - 21:51 por mpsbrasilia

» Duvida RM Labore - Calculo Folha de Pagamento
Seg 12 Set 2016 - 15:51 por RIVALDO PAES

» Exportar Imagem do banco de dados SQL SERVER
Qui 28 Jul 2016 - 11:42 por edivan

» Consulta SQL
Qui 10 Set 2015 - 11:32 por evertonerp

» Existe Algum Demo do RM Labore???
Sex 17 Abr 2015 - 11:53 por fmsolucoes

» RM BIBLIOS
Seg 16 Fev 2015 - 7:50 por fmsolucoes

» Identificação do Tipo de Renegociação de Aditivo (SGI)
Ter 26 Ago 2014 - 9:13 por VM Simoes

» Conexão com o banco de dados.
Seg 4 Ago 2014 - 20:44 por Juscelio

Galeria


Navegação
 Portal
 Índice
 Membros
 Perfil
 FAQ
 Buscar
Parceiros & Clientes FM Soluções

Criando uma rotina customizada de autoincremento de ID´s no RM

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Criando uma rotina customizada de autoincremento de ID´s no RM

Mensagem por fmsolucoes em Qua 6 Jan 2010 - 14:13

Criando uma rotina customizada de autoincremento de ID´s no RM
Coloque duas Queries no Datamodule.

Uma vamos chamar de qUpdAutoInc e a outra de qGetAutoInc. Estas queries, uma vai obter o valor da chave na tabela GAUTOINC e a outra gravar o novo valor lá.

Na query qGetAutoInc, vamos colocar a seguinte senteça:


SELECT VALAUTOINC FROM GAUTOINC
WHERE CODCOLIGADA = :CODCOLIGADA AND
CODSISTEMA = :CODSISTEMA AND CODAUTOINC = :CODAUTOINC

Esta sentença traz o valor atual do campo informado em CODAUTOINC (que na verdade é o nome do campo chave de uma tabela)


Na qUpdAutoInc, vamos colocar a sentença:

UPDATE GAUTOINC SET VALAUTOINC = :VALAUTOINC
WHERE CODCOLIGADA = :CODCOLIGADA AND
CODSISTEMA = :CODSISTEMA AND CODAUTOINC = :CODAUTOINC

Agora para você fazer o autoincremento, basta fazer:


function TDMFat.GenIDMov: integer;
begin
qGetAutoInc.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;
qGetAutoInc.ParamByName('CODSISTEMA').AsString := 'T';
qGetAutoInc.ParamByName('CODAUTOINC').AsString := 'IDMOV';
qGetAutoInc.Open;
Result := qGetAutoInc.fieldbyname('VALAUTOINC').AsInteger + 1;
qGetAutoInc.Close;
qUpdAutoInc.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;
qUpdAutoInc.ParamByName('CODSISTEMA').AsString := 'T';
qUpdAutoInc.ParamByName('CODAUTOINC').AsString := 'IDMOV';
qUpdAutoInc.ParamByName('VALAUTOINC').AsInteger := Result;
qUpdAutoInc.ExecSQL;
end;


No caso acima, esta rotina incrementa o campo IDMOV da Tabela TMOV do RM Nucleus. Muitos aqui vão me questionar porque eu não uso o Succ para incrementar o valor do campo. Eu explico: O uso de funções e procedimentos, só se torna conveniente quando a rotina é de complexidade considerável e que não é viável codificar diretamente na estrutura do programa. Para quem não sabe o que acontece com seu programa, quando ele esta sendo executado e encontra uma função o procedimento, ele para de executar, vai ser empilhado e então será executada a rotina (procedimento ou função) em questão. Então ficar usando em demasia, funções como Inc, Succ, dentre outras, irá promover uma relativa lentidão no seu sistema. Eu, particularmente, evito estas funções. Ao invés de usar Inc(i), eu prefiro usar i := i + 1
Postado por Walter Chagas Jr. às 12/21/2007 01:14:00 PM 0 comentários

fmsolucoes
Admin

Mensagens : 292
Pontos : 612
Data de inscrição : 17/07/2009
Idade : 38
Localização : Conselheiro Lafaiete

Ver perfil do usuário http://www.fmsolucoeserp.com.br

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum