Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rento

Valores NULL SQL

Recommended Posts

Iaew eu denovo.... agora fiz isso:///Resulta no proximo numero. Function NextIdNumber() : string; begin lvPesq := 'SELECT * FROM ' + cntTBForCon; dmTC.rOpenRSQuery(lvPesq, dmTC.qTemp); dmTC.qTemp.Last; result := Copy(dmTC.fStrRS('id_con', dmTC.qTemp), 6, 2); dmTC.qTemp.Close; end;Algumas obs:1 esta funcionando...2 nao tenho acesso a dmTC pois estou fazendo uma parte do programa do meu padrasto, ou seja, ele não libera todos os font para eu.3 openRsQuery abre uma conexao4 fStrTs reculpera um valor de uma tabela..O problema Quando não existem contatos ... ou seja, não existe valores na table....Como faço?Como sou bonzinhoOlha o code... consegui..: Function NextIdNumber() : string; var I : integer; begin lvPesq := 'SELECT COUNT(MID(id_con,5,2)) AS QTD FROM ' + cntTBForCon + ' WHERE MID(id_con,1,5)="' + idCotToCon + '"'; dmTC.rOpenRSQuery(lvPesq, dmTC.qTemp); I := StrToInt(dmTC.fStrRS('QTD',dmTC.qTemp)) + 1; result := fLPad(IntToStr(I),'0',2); dmTC.qTemp.Close; end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode fazer assim:

 

Function NextIdNumber() : string;var	prox: integer;beginlvPesq:='select max(campo) as Proximo from tabela';dmTC.rOpenRSQuery(lvPesq, dmTC.qTemp);prox:=dmTC.qTemp.FieldByName('CAMPO').AsInteger;Inc(prox); //Próximo número incrementadoresult:=IntToStr(prox);dmTC.qTemp.Close;end;

Não sei se vai funcionar com os seus fontes, pode-se que tenha de mudar algo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, iria... mas quando tivesse 100000milhao de contatos. demoraria muitoPor isso o COUNT com o WHERE MID(id_con,1,5) fica melhorJa que os 5 primeiros são o numero do fornecedor e os dois últimos são a ID do contato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.