Ir para conteúdo

POWERED BY:

Arquivado

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

Fells

[Resolvido] Exibir dados SQL Server em pagina ASP

Recommended Posts

Bom dia.

 

Trabalho no SQL Server e preciso exibir o ultimo registro do banco na página/tela ASP, mais especificamente, a chave primaria que eh um Numero auto incrementavel.

 

**o que ele ja faz**

Há um formulario (AtasFormulario.asp) onde o usuario preenche e insere no banco os dados, feito isso (clicando no botão Inserir), ele insere no SQL Server e encaminha o usuario para uma outra pagina asp (AtasInserir.asp) que da a mensagem que "Foi inserido novo registro. Deseja inserir outro". Se clica em SIM volta ao formulario se NÃO ele sai do sistema.

 

Preciso exibir o numero (chave primaria auto incrementada) no meio dessa frase "Foi inserido novo registro *(numero N)*, deseja inserir outro"

Deu para entender galera?

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é auto incremento, basta pegar o valor da ultima e somar +1 e poderá exibir isso na mesma mensagem.

 

Outra possibilidade seria inserir o registro, fazer um select para pegar o ultimo registro e exibir o numero desejado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode antes recuperar o ultimo registro incluido, você pode usar o SQL Last()

A função Last() retorna o último valor da coluna selecionada.

 

SELECT LAST(column_name) FROM table_name

 

existem alguns tópicos sobre este assunto no forum, da´uma pesquisada...

 

no SQL SERVER, você pode recuperar essa valor com

 

SELECT @@IDENTITY

 

no MySQL você pode usar o LAST_INSERT_ID()

 

========

 

ultimo registro e somar + 1 e inserir no bd

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'conexao teste com  mdb
Dim localbd, bd

Set bd = Server.CreateObject("ADODB.Connection")
localbd = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath("banco.mdb") 
bd.Open localbd 

Dim sql, rs
Dim cd_pedido

Set rs = Server.CreateObject("ADODB.RecordSet")

if Request.Form("btenvia") = "Gerar Numero" then
       'Novo numero
       SQL = "SELECT MAX(N_PEDIDO)+1 AS ULITMO_PEDIDO FROM PEDIDO"
       Set rs = bd.Execute (sql)
       cd_pedido = rs.Fields("ULITMO_PEDIDO").Value 

       'inserindo novo numero
       bd.Execute ("INSERT INTO PEDIDO (N_PEDIDO) VALUES (" & cd_pedido & ")")
       rs.Close

end if

'verificando numero
SQL = "SELECT MAX(N_PEDIDO) AS ULITMO_PEDIDO FROM PEDIDO"
Set rs = bd.Execute (sql)
cd_pedido = rs.Fields("ULITMO_PEDIDO").Value 


rs.Close
Set rs = Nothing

bd.Close
Set bd = Nothing
%>
<html>
<head>
<title>Numero Sequencial</title>
</head>
<body>
<center>
<form  id="frm" action="Numero_Sequencial.asp" method="post">
Numero do ultimo pedio:<%=cd_pedido%><br>
<input type="submit" id="btenvia" name="btenvia" value="Gerar Numero" />
</form>
</center>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui pessoal, talvez esteja fazendo algo errado...

 

Assim vou postar meu codigo da (AtasInserir.asp) pra explicar...

Esse ASP pega os dados do AtasFormulario.asp insere no SQL SERVER e da a mensagem para o usuario se deseja inserir um novo registro, como podem ver abaixo.

 

Quando aparecer "Registro Inserido" quero mostrar também o número que foi auto incrementado para aquele registro.

Não sei como fazer...

 

<%@ Language=VBScript%>
<%
Response.Cookies("Areapermiss") = "Ceng"
%>
<html>
 <head>
   <title>
     <%=Session("Titulo")%></title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </head>
 <body>

<!-- -----------------------------------------------------------------------------------
      _____________________________ Cabeçalho da página ______________________________ 

------------------------------------------------------------------------------------- -->

   <link href="Conteudo.css" rel="stylesheet" type="text/css">
     <table class="cabecalho">
       <tr>
  <td class="Colunacab">SOLICITAÇÕES
         </td>
       </tr>
     </table>
     <p style="MARGIN-BOTTOM: 5%; MARGIN-TOP: 5%"> </p>

<%
'________________________________________________________________________________________________
	'Recolhemos os valores do formulário
'________________________________________________________________________________________________

Cliente = Request.Form("requiredCliente")
Aplicacao= Request.Form("requiredAplicacao")
Produto = Request.Form("requiredProduto")
Data= Request.Form("requiredData")
Solicitante = Request.Form("requiredSolicitante")
TipoDeSolicitacao= Request.Form("requiredTipo De Solicitacao")
TipoConstrutivo = Request.Form("requiredTipo Construtivo")
ECN= Request.Form("requiredECN")
StatusDesenhoMaterial = Request.Form("requiredStatus Desenho Material")

'________________________________________________________________________________________________
	'Instanciamos e abrimos nosso objeto conexão
'________________________________________________________________________________________________

	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open Session("Gestao_conn")

'________________________________________________________________________________________________
'Agora criamos a sentença SQL
'________________________________________________________________________________________________

%>
<%
'ELSE
sSQL="Insert Into ContEng_Solicit2 (Cliente, Aplicacao, Produto, Data, Solicitante, TipoDeSolicitacao, TipoConstrutivo, ECN, StatusDesenhoMaterial) values ('" & Cliente & "','" & Aplicacao & "','" & Produto & "',convert(smalldatetime,'" & Data & " ',103),'" & Solicitante & "','" & TipoDeSolicitacao & "','" & TipoConstrutivo & "', '" & ECN & "','" & StatusDesenhoMaterial& "')"

'________________________________________________________________________________________________
'Executamos a ordem
'________________________________________________________________________________________________

set RS = Conn.Execute(sSQL)
%>

<!-- ----------------- Mensagem informando que registro foi inserido! ------------------------------------------------

Caso o usuário queira inserir um novo registro ele clica em SIM e é encaminhado para o formulário novamente.
Caso Clique em NÃO ele volta para a pagina SOLICITAÇÃO

------------------------------------------------------------------------------------------------------------------- -->

<font size = 4><b><div align="center">Registro Inserido</div><br></b>
<div align="center"><font size = 2 color = "#666666">ADICIONAR NOVO REGISTRO ?</div><br>
<div align="center"><font size = 2><a href="SolicitacaoFormulario.asp">Sim</a>

       <!-- espaçamento maior entre linhas -->

<font size = 2><a href="Solicitacao.asp">Não</a></div>


<%
'END IF

'________________________________________________________________________________________________
'Fechamos o sistema de conexão
'________________________________________________________________________________________________

Conn.Close
%>

 </BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se estiver em uma transacao, você pode pegar o id inserido pelo SCOPE_IDENTITY(), que eh uma funcao do SQLServer

Ou fazer isso para pegar o ultimo id da tabela:

 

SELECT id FROM tabela WHERE ID = IDENT_CURRENT('tabela')

 

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa parece ser mto facil mais to apanhando ainda hen...

Deve ser eu que estou fazendo errado certeza...

 

Tentei o SELECT LAST(column_name) FROM table_name e não consegui... tentei o SELECT id FROM tabela WHERE ID = IDENT_CURRENT('tabela') e também não consegui...

 

Vou usar apenas esse trecho:

 

(ORIGINAL)

<font size = 4><b><div align="center">Registro Inserido</div><br></b>
<div align="center"><font size = 2 color = "#666666">ADICIONAR NOVO REGISTRO ?</div><br>
<div align="center"><font size = 2><a href="SolicitacaoFormulario.asp">Sim</a>

 

(COMO DEVE SER)

 

<font size = 4><b><div align="center">Registro [b](PRECISO MOSTRAR O ULTIMO NUMERO AQUI)[/b] Inserido</div><br></b>
<div align="center"><font size = 2 color = "#666666">ADICIONAR NOVO REGISTRO ?</div><br>
<div align="center"><font size = 2><a href="SolicitacaoFormulario.asp">Sim</a>

 

Não esta aparecendo. Desculpa a "leiguice" gente, é que comecei a pouco trabalhar com isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum numero de erro ?

dá um response.write na sua string SQL para ver o que esta sendo passdo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei o SELECT id FROM tabela WHERE ID = IDENT_CURRENT('tabela') e também não consegui...

 

Eu uso deste modo em algumas aplicacoes em BI... que eh gerado????

 

ele esta gerando algum numero de erro ?

dá um response.write na sua string SQL para ver o que esta sendo passdo.

 

um response tb no select acima :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não... erro ele não deu não...

O que tentei fazer foi um comando SQL = "select ... (oque me passaram aqui no forum)" e quando rodei o ASP ele não fez "nada".

Acho que pode ate funcionar o que me passaram aqui, mais eu eh que não sei como incrementar no codigo.

 

Não sei se tenho que fazer uma instrução como estava fazendo?

SELECT LAST(column_name) FROM table_name eou SELECT id FROM tabela WHERE ID = IDENT_CURRENT('tabela')

 

Se tenho ou como tenho que criar uma variavel e atribuir o valor do banco (SQL Server)...

Eu realmente não sei cmo fazer... isso...que eu sei que eh bába.

 

Como disse "desculpa a Leiguice" gente. Não manjo mto mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[RESOLVIDO]

**não sei como fazer para colocar o Resolvido antes do título, mais esta Resolvido, kkkkk...

 

Galera... seguinte.

Problema solucionado e estou postando o que fiz...

 

abraços.

 

InsSql = "Select * from SuaTabela ORDER BY Coluna DESC"      'no meu caso seria Select * from ContEng_Cartas ORDER BY Numero DESC
set Ins = Conn.Execute(InsSql)

<font size = 3> Registro <%=Ins.Fields("Coluna")%> Inserido </font>        'Resultado na tela seria +/- assim : REGISTRO 32 INSERIDO

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.