Ir para conteúdo

POWERED BY:

Arquivado

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

[rush_jeff_rulez]

Altera codigo com funcao

Recommended Posts

Aeeeeee ... q maravilha !!!

 

Eae caro usuario do forum, como esta o seu dia !? .... tah sacudo jah de trabalhar !? .... louco para ganhar apenas 1 milhao na mega sena !? .... pois eh eu tbm !!!

 

Bom galera ... eu tava pensando aqui neh ... tem um codigo q o sistema bola automaticamente ... soh q as vezes eh possivel q esse codigo seja igual há um jah gerado ... ae eu simulei o erro:

 

ASP

[*]<%

 

[*]codigo="12345"

 

[*]

 

[*]add_cod = (Request("codigo"))

 

[*]

 

[*]IF add_cod = codigo THEN

 

[*]add_cod = add_cod&"a"

 

[*]END IF

 

[*]%>

 

[*]

 

[*]<%=add_cod%>

 

Ai ficou facil ... soh q assim ... nesse codigo ai esta:

se jah tiver esse codigo ... ele coloca o "a" .. ai se o cara digitou 12345 .... fica 12345a

 

Soh q se forem gerando mais codigos iguais ... fazer um monte de IF nem rola ... tem como criar uma função tipo q pegue de A-Z ... ai se o codigo gerado ja existir ele vai colocando as letras de A ateh Z ... ateh inserir ?

(ai no caso usando WHILE neh !?)

 

Como eu poderia montar esse esquema !!!??

 

Valeu galera !!!

 

ps - poderia usar o complemento do codigo com data e hora, mas ai o codigo ficaria muito extenso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae caro usuario do forum, como esta o seu dia !? .... tah sacudo jah de trabalhar !? .... louco para ganhar apenas 1 milhao na mega sena !? .... pois eh eu tbm !!!

EU EU EU EU !!! hauhauhuaahuCaro [rush_jeff_rulez], eu acho q temos q entender algumas coisas antes de te ajudar:- a variável add_cod vai gravar no bd depois q ele pegar um valor "a" ?- o campo código tem um limite de caracteres ? oq acontece se a letra passar do Z ?Falta essas informações pra eu entender seu problema e te ajudar um pouco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro seleciona o maior codigo que já tenha que começa com o codigo passado

 

CODIGO = Request("CODIGO")

 

SELECT TOP 1 CODIGO FROM TABELA WHERE CODIGO LIKE '" & CODIGO & "%' ORDER BY CODIGO DESC"

 

ai você testa se ja tem

 

ASP

    [*]IF NOT RS.EOF THEN

     

    [*]insere o codigo mesmo

     

    [*]ELSE

     

    [*]  IF ISNUMERIC(RIGTH(RS("CODIGO"),1)) THEN

     

    [*]  CODIGO = CODIGO & "a"

     

    [*]  ELSE

     

    [*]  CODIGO = CODIGO & CHR(ASC(RIGTH(RS("CODIGO"),1))+1)

     

    [*]  END IF

     

    [*]END IF

 

sem testar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa .....Falae ULTRAAAAAAAAAAAAAAAAAAAAaa ....

- a variável add_cod vai gravar no bd depois q ele pegar um valor "a" ?- o campo código tem um limite de caracteres ? oq acontece se a letra passar do Z ?

1 - sim ... ele vai gravar no bd após comparar com os codigos do bd e adicionar a letra ao código2- nao tem um limite nao ... mas assim, ela nao chegara a passar do Z, eu soh usei de A-Z ... para exemplificar ... mas assim digamos q irá de A ateh J.Valeu ULTRAAAAAAAAAAAAAAAaaaaaa....

Compartilhar este post


Link para o post
Compartilhar em outros sites

huaehuaehuaeha num agradeça a mim, agradeça o marioufpa ! Ele cabou com o seu problema !Num testei aqui, mas vendo o cód. dele parece perfeito !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu nao estava de agradecendo ... eu estava te incentivando auhahuhuahau ... zuera cara !!! .... :D

 

Pois entao ... eu ainda nao testei ... cheguei do meu rango agora ... mas soh por ter demonstrado atenção e tudo mais ...

 

VALEU MARIO UNIVERSIDADE FEDERAL DO PARA .... vou dar uma testada ... e jah digo se funfou !!! ..

 

Valeu galera-ha !!!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz meu !!!

 

Fiz q nem tu disse Mario ....

 

ASP

[*]add_cod = (Request("codigo"))

 

[*]

 

[*]Set rs Server.CreateObject("adodb.recordset")

 

[*]SQL="SELECT TOP 1 codigo FROM teste WHERE codigo = "&add_cod&" ORDER BY codigo DESC"

 

[*]rs.Open SQL, ConnString, 1, 3

 

[*]

 

[*]IF NOT RS.EOF THEN

 

[*]codigo_bd rs("codigo")

 

[*]

 

[*] IF ISNUMERIC(RIGTH(codigo_bd,1)) THEN

 

[*]  add_cod = add_cod & "a"

 

[*] ELSE

 

[*]  add_cod = add_cod & CHR(ASC(RIGTH(codigo_bd,1))+1)

 

[*] END IF

 

[*]

 

[*]ELSE

 

[*]Response.Write "Esse codigo nao existe vou inserir"

 

[*]END IF

 

Mas ae no meu micro ele deu erro na pagina:

 

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: 'RIGTH'

/funcao/funcao.asp, line 15

 

E no server foi:

 

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'RIGTH'

/cadastro/fotos/funcao.asp, line 15

 

Eh o mesmo erro ... mas o q sera q rola !?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema tá no right(codigo_bd,1)Vê se a variável tá vazia, ou está incorreta...... dá um response.write codigo_db e posta aqui no forum =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opaaaaaaaa .... olha q falha !!!no cod. estava Tipos incompatíveis: 'RIGTH'qdo na verdade eh RIGHT !!! :o erro de gramatica !!! ....Jah testei e rolou .. .vamos ver agora cadastrando no BD ... pra ver se vai direto !!!Valeu galera-ha !!!Mario .... akela força !!!(chega de declarações uhahuahuauhahuahuahuhau zuera)

Compartilhar este post


Link para o post
Compartilhar em outros sites

achou engraçado !? ker dizer q você ficou rachando o bico e eu quebrando a cabeça aqui !? <_< kkkkkkkkkkkkkkkkkkk ... po ... eu achando q era o IIS q tava meio zuado !!!Agora tah beleza ... soh preciso ver uma parada aqui ... se eu nao conseguir eu volto a postar !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal erro de digitação, ehheehhemas e ai testou??? funfou??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou cara .... funcionou facil .... soh q assim ... uma duvida.

 

Eu montei o codigo:

ASP

[*]IF rs.eof AND rs.bof THEN

 

[*]Conexao.Execute ("INSERT INTO teste (codigo) VALUES ('"&add_cod&"')")

 

[*]Response.Write "Esse codigo nao existe ja inseri"

 

[*]ELSE

 

[*] IF ISNUMERIC(RIGHT(rs("codigo"),1)) THEN

 

[*]  add_cod = add_cod & "a"

 

[*]  Conexao.Execute ("INSERT INTO teste (codigo) VALUES ('"&add_cod&"')")

 

[*] ELSE

 

[*]  add_cod = add_cod & CHR(ASC(RIGHT(rs("codigo"),1))+1)

 

[*]  Conexao.Execute ("INSERT INTO teste (codigo) VALUES ('"&add_cod&"')")

 

[*] END IF

 

[*]END IF

 

[*]Response.Write add_cod

 

Ai beleza soh q assim ... o codigo do BD eh 12345 .... se o proximo codigo cadastrado for tambem 12345 ... ele vai colocar o "a" ... ai fica 12345a ....tranquilo ...

 

Mas e se depois eu cadastro um outro 12345 ... ele vai colocar de novo o "a" e novamente o bd recebera um codigo 12345a

 

Agora se ao invés de eu cadastrar 12345 eu cadastrar 12345a ... ai ele adiciona o "b" e coloca no bd 12345ab .... certinho.

 

Nao tem como eu fazer um WHILE ... tipo ... o cara cadastro 12345 .... ai a funcao ve q jah tem no BD e adiciona o "a" 12345a .. ao invés de jah cadastrar ele nao tem como ver se ja nao existe no BD o registro 12345a .. ae se ja existir ...ele adiciona o "b" 12345ab .. ae verifica de novo, se nao existir ele cadastra .. se existir ele vai fazendo o loop adicionando letras ateh cadastrar !?

 

Putz devo ter confundido tudo neh ... mas se nao conseguirem entender eu tento explicar melhor ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi o que ta acontecendo mas sem testar não tenho como depurar...vou olhar direito aqui pra tentar achar o erro so no olho mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fuquei na duvidase tiver 1 e 1a o que vem no select top 1???

Compartilhar este post


Link para o post
Compartilhar em outros sites

affacho que sei o que pode ser, você ta usando igual e eu fiz o codigo usando like...ta diferente isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmmmmmmmmmmmmmmm http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif

 

Soh pode cre .... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif ... tah vendo isso q dah ficar copiando e colando codigo de outros scripts !!!

 

Preguiçoso trabalha duas vezes :angry:

 

Meu ... jah arrumei o codigo vou testar .... jah te falo o q rolou !!!

 

Valeu Mario .... eu jah disse q ... !?

aiahuhahuauhauhah

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeeeeee Marioooo .... ficou loco loco loco !!!tabela teste:id codigo14 1234515 12345a16 12345b17 12345c18 12345d19 12345eFicou massa ... codigos duplicados !? NEVER MORE ...Ai como estava como = ... ele pegava apenas o registro igual ... hmmmmm ... massa !!!Valeu mais uma vez MarioBrigadão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeeeeee Marioooo .... ficou loco loco loco !!!

 

tabela teste:

id codigo

14 12345

15 12345a

16 12345b

17 12345c

18 12345d

19 12345e

 

Ficou massa ... codigos duplicados !? NEVER MORE ...

 

Ai como estava como = ... ele pegava apenas o registro igual ...  hmmmmm ... massa !!!

 

Valeu mais uma vez Mario

Brigadão

de nada, que bom que funcionou, ainda mais sem testar, eheheh http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

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.