Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom pessoal...
minha dúvida é a seguinte, como faço para gerar número seqüenciais?
Seria o seguinte:
Em um campo Type:text ele pegar na base de dados o último número e adicionar mais 1
Vamos dizer que base de dados id_atendimento q o último número é: 151
quando ele pegar o número 151 e soma com mais 1 = 152
o número 152 vai ser usado para o próximo atendimento a adicionar.
estou em dúvida... como faço no asp e se eu uso o id primary outro uso outro campo na tabela com o nome protocolo.
Ajudem!
>
qual banco?
mySQL
Tudo bem?
Pelo que entendi seria isso:
if not(cadastro.eof) then
id_cliente = cadastro("id_atendimento") + 1
else
id_cliente = 0
end if
Você coloco antes do insert no bd.
Falow
vai ter que, ao abrir o atendimento fazer o insert e pegar o id do registro. qualquer modificação no form você fará um update naquele id
no my sql tem uma função, se nao me engano, last_insert_id que você pega a ultima PK inserida pela conexao corrente( que será unica)
Se você quer pegar o último ID no mesmo script que você insere algum registro no banco, e se este ID for auto_increment. utilize o mysql_insert_id(),
SELECT CODIGO FROM tabela WHERE CODIGO = LAST_INSERT_ID()
até um
select MAX(cod) INTO ultimo_cod from tabelaunico problema do MAX é que ele não trata por conexao, ou seja, se duas pessoas fizerem o insert ao mesmo tempo(diferença em milisegundos) pode acontecer de os dois pegarem o mesmo ID usando o MAX. com o last_insert_id isso nao aconteceria
atraves do recordset você pode ter um bloqueio otimista, mas o melhor é o LAST_INSERT_ID()
estou usando Mysql...
seria assim: quando eu clicar para abrir o formulário de atendimento para ser preenchido, ele já gera o número de protocolo.
Este número já ficaria tenho Input type="text" quando eu terminar de preencher todo o formulário e clicar em Gravar, este dados seriam inseridos junto com o protocolo gerado da tabela(campo).
OBS: meu projeto é um sistema de suporte via telefone, ou seja, quando um cliente ligar para mim, eu iria já gerar um número daquela atendimento pelo telefone.
joga o ID criado apartir do imcremento do Last ID, dentro do value no input text e depois dá um UPDATE neles usando o Id criado
>
joga o ID criado apartir do imcremento do Last ID, dentro do value no input text e depois dá um UPDATE neles usando o Id criado
me ajude na prática, estou iniciante em asp.
1º terá k ter a conexao com o bd o recordset criado
executar a SQl SELECT CODIGO FROM tabela WHERE CODIGO = LAST_INSERT_ID()
para criar o proximo ID,e coloca-lo dentro do formulario e no input type text do ID
<input type="text" name="ID" size="12" maxlength="12" value="<%=rs("ID")%>">e depois de cadastrar o restante do form você dá um Update nele
varID=replace(ID,"'","")
'crio a conexao%>
<!--#include file="conn/conexao1.asp"-->
<% 'abro a conexao
call abreconexao
'crio o rs
set rs=Server.createobject("ADODB.Recordset")
'crio a SQL
SQL="UPDATE tabela SET campo='"&campo1&"',campo2='"&campo2&"',campo3='"&campo3&"' WHERE id="&varID&""
rs.open SQL,conexao,1,3Microsoft VBScript runtime error '800a000d'
Type mismatch
/central/abrir_atendimento_telefonico.asp, line 85
deu este erro acima...
os campos na string SQL com excecao do ID o resto esta tudo como texto, verifique como esta no seu banco
qual banco?