Ir para conteúdo
Fórum Script Brasil

rodrigotnoma

Membros
  • Total de itens

    166
  • Registro em

  • Última visita

Posts postados por rodrigotnoma

  1. Boa noite,

    Estou tentando fazer uma procedure, dentro dessa procedure serão executadas outras procedures e alguns inserts e updates.

    Gostaria de executa-la por bloco, e a se o bloco a ser executado der algum erro, paro a execução e exibo uma mensagem do step que deu problema.

    Criei essa como teste:

    alter procedure Sp_TesteErro
    -- Sp_TesteErro 'Rodrigo'
    (
    @nome varchar(100)
    )
    as
    begin
    
    begin transaction
    
    declare @error    int
    declare @msg    varchar(1000)
    
    insert into tabela1 values('Rodrigo')
    
    Set @error = @@error
    
    if @error<>0
    begin
    set @msg = 'Erro passo 1'
    goto errodetail
    end
    
    insert into tabela1 values('Romina')
    
    Set @error = @@error
    
    if @error<>0
    begin
    set @msg = 'Erro passo 2'
    goto errodetail
    end
    
    errodetail:
    if @error <> 0
    begin
    rollback transaction
    select @msg
    end
    else
    commit transaction
    
    end

    Quando executo, a segunda vez, a procedure exibe erro de PK, mostra a mensagem de "Erro no passo 1", mas também exibe o erro:

    Server: Msg 2627, Level 14, State 1, Procedure Sp_TesteErro, Line 14

    Violation of PRIMARY KEY constraint 'PK__tabela1__0DAF0CB0'. Cannot insert duplicate key in object 'tabela1'.

    The statement has been terminated.

    Como faço para que não seja exibida essa mensagem e sim somente a minha mensagem de "Erro no passo 1"?

    Obrigado.

  2. Bom dia.

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    Set conntemp = Server.CreateObject("ADODB.Connection") 
    conntemp.Open Application("Conecta_bd")
    vCapital = Request.form("txtcapital")
    SQL = "SELECT * FROM verifica WHERE ParcelaI < '"&vCapital&"' And ParcelaFinal > '"&vCapital&"'"
    et rsPedidos = conntemp.Execute(SQL)
    base = rsPedidos("Parcela")
    %>

    Abços.

  3. Seguinte:

    Sub ExibirConteudoPagina
    Call AbreConexao
    SQL_ExibirConteudoPagina = "SELECT * FROM tbl_noticias where categoria = '"&var_Id_Categoria&"' and categoria_coluna ='"&var_Categoria_coluna&"' order by id desc limit 3"
    set RS_ExibirConteudoPagina = ConexaoDB.Execute(SQL_ExibirConteudoPagina)
    End Sub
    A sub "ExibirConteudoPagina" não pede paramêtro e você esta tentando passar com o tal.
    ExibirConteudoPagina(RS_ExibirConteudoPagina)

    Abços.

  4. Seguinte:

    <%

    '***************** Faço o request do campo digitado

    login = request("login")

    '*****************Utilizo o x para controlar o WHILE****************

    x = 0

    '***************** Efetuo um select em todos os registros

    sql = "select * from loginteste"

    Set rsaux = objConn.Execute(sql)

    '**************** Para cada registro, pego o que estiver antes do @ e jogo para a variavel nome.

    do while not rsaux.EOF

    nome = mid(rsaux("login"),1,(instr(rsaux("login"),"@")-1))

    '**************** Se o que foi digitado for igual a string que vem antes do @

    if login = nome then

    '***************Incremento o x

    x = x + 1

    end if

    rsaux.movenext

    loop

    '************** Se x=1 significa que encontrou algum registro na base que é idêntico

    '************** ao que foi digitado.

    if x = 1 then

    '************** Redireciono para a página seguinte

    response.redirect "paginacerta.asp"

    else

    '************** Redireciono para a página de erro

    response.redirect "paginaerrada.asp"

    end if

    set rsaux = nothing

    Set objConn = nothing

    %>

    Abços

  5. Qual o problema que ocorre?

    Primeiro tire o ";" da segunda linha.

    Tente dar um Response.Write Request("id_com") para ver o que retorna.

    De um novo- Response.Write coment -para verificar qual query está tentando executar, teste no banco e veja o que retorna.

    Abços

  6. Seguinte:

    Ta vendo aquele "rsa" que você colocou ali?

    Isso é chamado de "Recordset", com ele você irá percorrer todos os registros da sua tabela.

    Ex:

    Set rsMeuSelect = Server.CreateObject("ADODB.Recordset")

    strSql = "Select * from TB_cadastro"

    rsMeuSelect.Open strSql,con

    Sendo:

    strSql = a query que você utilizará para trazer os seus registros do banco, ok?

    con = Objeto de conexão(no seu código seria o cnn), ok?

    Todos os resultados que retornar do meu select acima, serão "armazenados" no recordset rsMeuSelect, ok?

    Suponha que na sua tabela TB_cadastro, tenha o campo nome, telefone, endereco e idade.

    Faz de conta que aquele SELECT lá em cima esteja assim: "Select nome from TB_cadastro where id = 20"

    Ele retorna isso:

    nome = "José"

    telefone = "9999-9999"

    endereco = "Rua 2"

    idade = 25

    Como você faz para resgatar o registro que que contenha o nome?

    Pega o seu RECORDSET( rsMeuSelect) e busca o campo desejado(nome), ficando:

    rsMeuSelect("nome") , entendeu? a mesma coisa se você quiser pegar a idade: rsMeuSelect("idade").

    Caso você utilize: "Select * from TB_cadastro"

    Qual o resultado do select? Resposta:****Tudo que tem no banco*****

    Para trazer o resultado no seu ASP, como se fosse uma lista de todos os nomes que estão cadastrados no banco:

    While not rsMeuSelect.EOF

    Response.Write rsMeuSelect("nome")&"<br>"

    rsMeuSelect.Movenext

    Loop

    No seu código, seu recordset é "rs" e você esta utilizando "rsa", o erro já começa por ai!!!

    Depois, no seu primeiro IF, você cria uma conexão, faz o select tudo certo, mas é se ele não satisfazer a sua condição e for para o ELSE, o que o seu recordset irá trazer? NADA.....pois não existe nem um select para alimentar seu "rs".

    Entendeu?

    Abços

  7. Response.redirect("http://www.linhasrodoviarias.com.br/busca/resultado.asp?txtCidadeOrigem=são+PAULO&estado= " & rs("cod_tipo") & " &cidade= " & rs("codcat") & " &botao=Buscar")

    Só que assim: Logo depois do seu else, o response.redirect não vai adr certo por causa que o Recordset(rs), não está setado a nenhum select.

    Você deverá efetuar um select no seu banco para trazer esses registros(cod_tipo e codcat) setando o resultado do registro para o recordset rs(como você fez no IF), só que para o else também.

    O jeito que você estava fazendo(request.form("cod_tipo")) só resgata valores de forms e querystring, para trazer resultados de select em banco, você utiliza o seu recordset com o campo que você quer, por isso utilize: rs("cod_tipo").

    Abços

    Abços

  8. Com um button, não vejo alternativa sem o uso de javascript.

    Caso fosse um link, você poderia utilizar o "target".

    Mas com o uso do javascript, você poderia fazer dessa forma:

    <html>

    <body>

    <form name="teste" action="ProtocoloAcessoDados.asp" method="post">

    <input type="submit" value="teste" onclick="window.open('new.html','new','toolbar=no');" />

    </form>

    </body>

    </html>

    Onde:

    window.open('new.html','new','toolbar=no')

    window.open('nome da pagina que irá abrir','Nome no cabeçalho','Propriedades')

    Abços

  9. Experimenta assim:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <% 
    
    dim conexao
    dim nome
    dim email
    dim msg
    dim inserir
    set  conexao  = server.CreateObject("ADODB.Connection")
                    conexao.connectionString = ("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=estudarasp; User=root;Password=root;Option=3;")
                    conexao.open
                    
    nome = request.Form("nome")             
    email = request.Form("email")
    msg = request.Form("msg")
    
    strsql = "INSERT INTO comentarios(nome,email,mesagem) VALUES ('" & nome & "','" & email & "','" & msg & "')"
    
    conexao.Execute strsql
    
    response.Write("Sucesso")
    
    
    %>

    Qualquer coisa, poste ai.

  10. Tenho esse font:

    <script>
    function checado()
    {
    document.form1.submit();
    }
    </script>
    
    <%
    'Dim objConn, strCaminho
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Provider=SQLOLEDB.1;Data Source=USER-B95C64A782\SQLEXPRESS1;" & _
    "User ID=sa; Password=123456; Initial Catalog=master;"
    
    sql = "select total = count(nome) from tb_email"
    sql1 = "select idemail,nome,idemail from tb_email"
    
    Set rsaux = objConn.Execute(sql)
    Set rsaux1 = objConn.Execute(sql1)
    
    v_total = rsaux("total")
    
    for i = 1 to v_total
    do while not rsaux1.eof
    %>
    <form name="form1" method="post" action="deleteEmail.asp">
    <input type="checkbox" name="checado" value="<%=rsaux1("idemail")%>"><%=rsaux1("nome")%><br>
    <%
    rsaux1.movenext
    loop
    Next
    sql3 = "delete from tb_email where idemail in ("& request.form("checado") &")"
    objConn.Execute(sql3)
    
    %>
    <input type="submit" value="Deletar Selecionados" onclick="java script:checado();">    
    </form>

    Ele até esta deletando os registros selecionados depois de escolher os checkbox e clicar em "APAGAR".

    Mas quando seleciono um checkbox e clico em "APAGAR", preciso dar um F5 para que de um novo submit e a pagina seja atualizada, caso contrario, a pagina mostra todos os registros, mesmo os que eu já apaguei.

    obs:tentei criar uma function em javascript para realizar o submit, mas não funciona.

    Obrigado

×
×
  • Criar Novo...