Ir para conteúdo

POWERED BY:

Arquivado

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

ukow

Erro de UPDATE "Tipos incompatíveis"

Recommended Posts

Olá!

Estou fazendo um teste para atualizar uma informação em um dos meus itens do banco de dados; porém houve um erro e não consigo decifra-lo. "Tipos incompatíveis"

 

Busco as informações no banco:

 

<%Dim caminho, conexao, rsProduto, seleciona%>
<%
caminho = "D:\web\LocalUser\divinho\banco\db.mdb"
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";"
%>
<%
Set rsProduto = Server.CreateObject("ADODB.Recordset")
seleciona = "SELECT * from Produtos where Cod_produto = "& request("cod")
rsProduto.Open seleciona, conexao
Dim cod
cod = request("cod")
%>
<FORM name="frmPrincipal" method="post" id="frmPrincipal" action="teste.asp?cod=<%=cod%>">
<input type=text name=codigo value="<%=rsProduto("Cod_produto")%>">
<input type=text name=nome value="<%=rsProduto("Nome")%>">
<input type="Submit" value="Enviar ">
</form>
Realizando o UPDATE
<%Dim caminho, conexao%>
<%
caminho = "D:\web\LocalUser\divinho\banco\db.mdb"
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";"
%>
<%
Dim sql, nome, cod, executecmd
nome = request.form("nome")
cod = request.form("codigo")
sql = "update Produtos set "
sql = sql & " Nome = '" & nome & "'"
sql = sql & " where Cod_produto = " & cod
call executecmd(sql)
Response.Redirect "teste2.asp"
%>

Podem testar através do link: http://divinho.com.br/teste2.asp?cod=344

 

Agradeço se alguém puder ajudar!

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde. 

Amigos, sou novo no forum. 

Estou com o seguinte problema e precisando de ajuda, se postei a duvida em local errado, me desculpa. 

 

Segue erro:

Erro de tempo de execução do Microsoft VBScript erro '800a000d'

Tipos incompatíveis: '[string: "P"]'

/wireless/sacarF.asp, linha 202

 

imagem: image.png.475c9663b05d6e2d05abf9d7b63527cb.png

 

Deveria montar a tela a seguir, circulado em preto:

image.png.5295ed5aa16111ceff773ad4eb97e93b.png

 

segue codigo fonte abaixo:

 

set rs3 = server.createobject("ADODB.Recordset")
    if left(session("ref"),1)="8" or left(session("ref"),1)="9"  or left(session("ref"),1)="6" then
    '    rs3.open "select requested as requested1,sacado=(select sum(picked) from shpdet a where refdoc1='" & trim(session("doc")) & "' and a.itemnumber='" & trim(session("ref")) & "'),boxes=(select count(*) from shpdet b where refdoc1='" & trim(session("doc")) & "' and b.itemnumber='" & trim(session("ref")) & "') from shphdr where refdoc1='" & trim(session("doc")) & "' and itemnumber='" & trim(session("ref")) & "'",seguridad,VaradOpenKeyset,VaradLockOptimistic
        rs3.open "select sum(requested) as requested1,sum(picked) as sacado,count(*) as contador,sum(boxes) as boxes from shphdr where refdoc1='" & trim(session("doc")) & "' and itemnumber='" & trim(session("ref")) & "'",seguridad,VaradOpenKeyset,VaradLockOptimistic
            
    else
        rs3.open "select sum(requested) as requested1,sum(picked) as sacado,count(*) as contador,sum(boxes) as boxes from shphdr where refdoc1='" & trim(session("doc")) & "' and itemnumber='" & trim(session("ref")) & "'",seguridad,VaradOpenKeyset,VaradLockOptimistic
    end if
    if cdbl(rs3("contador")) > 0 then
        pedido=rs3("requested1")
        if cdbl(cxb)>0 then
            bultosT = cdbl(rs3("requested1"))/cdbl(cxb)
        end if
        sacado=cdbl(rs3("sacado"))
        bultosS=cdbl(rs3("boxes"))
        bultosD=(cdbl(bultosT)-cdbl(bultosS))
        sacadoD = (cdbl(pedido)-cdbl(sacado))
        set rs3 = nothing
    end if 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Boa noite.
      Tenho um bd com 2 tabelas. A primeira (serv_os) tem as colunas id, fk_os e fk_servico  a segunda (prod_os) tem as colunas id, fk_os e agora eu criei a coluna fk_serv. A coluna fk_serv vai ser preenchida com o valor id da primeira coluna. Fiz o seguinte update entre as tabelas: 
      UPDATE prod_os
      JOIN serv_os ON serv_os.fk_os= prod_os.fk_os
      SET prod_os.fk_serv = serv_os.id
      WHERE prod_os.fk_os=serv_os.fk_os;
       
      Até aqui tudo bem, porém, fiquei com o seguinte problema.  Muitas vezes  existem vários serviços na primeira tabela, por exemplo id=100 produto A, id=101 produto B, porém o fk_os é o mesmo . Ai na coluna fk_serv aparece sempre o id do produto A. Nesse caso duas vezes. O produto B, C,...etc não aparece. 
      Não consegui nenhum comando, já que o join é pela coluna fk_os, que fizesse o update mudar o ponteiro para o serviço B,C,etc.
      Se alguém puder me ajudar eu agradeço.
    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por FabianoSouza
      Tenho uma function que precisa receber 02 argumentos.
      Ela funciona se eu aplicar num select qualquer. Mas se eu aplicar num select dinâmico, ocorre erro.
      Veja trecho do meu select.
      ... SET @sql = @sql +', dbo.retornaIco_ItemBloq((SELECT COUNT(*) FROM dbo.tab AS TT2 WHERE TT2.codCategTreina = CTT.id),'+@title+') AS ''resp''' ... No caso, o primeiro argumento da function dbo.retornaIco_ItemBloq é um SELECT COUNT.
      O segundo argumento é uma variável (que está devidamente declarada e definida).
       
      O erro ocorre porque ao executar (chamando EXEC(@sql) ), o SQL entende que o segundo argumento é uma coluna da consulta principal, pois existe uma vírgula antes da variável @title (que é o segundo argumento da function).
      Repito. Se eu aplicar essa function num select normal, funciona normalmente. Porém, preciso que funcione num SQL dinâmico porque é esse é o padrão que estou adotando para o sistema todo.
       
      A function dbo.retornaIco_ItemBloq faz o seguinte:
      1) Recebe o valor do COUNT e da variável @title
      2) Se o COUNT for maior que  Zero, cria uma tag HTML (uma SPAN), define sua title com o valor da variável @title e passa para uma variável
      3) Retorna o HTML que será exibido no resultado da consulta principal
      É super simples.
       
      Há outra forma de chamar a function?
    • Por vicente386
      Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
      estou tentando fazer assim:
      <?php > ini_set('max_execution_time', 2000); $pdo = new > DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD); > $sql = $pdo->prepare("SELECT count(*) FROM tabela2018"); > $sql->execute(); > $livro = 1; > foreach($sql as $obj){ > $variavel = $obj[0]; > ceil((float)$variavel/100); > $qtdlaco = ceil((float)$variavel/100); > for ($id = 1; $id <= 35; $id++) { > for($L=1; $L < $qtdlaco; $L++) { > for ($P = 0; $P <= 30; $P++) { > $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id"); > $sql->bindValue(':LIVRO', $livro); > $sql->bindValue(':POS', $P); > $sql->bindValue(':PAGINA', $L); > $sql->execute(); > } > } > } >} ?> mas na tebela so aparece: LIVRO POS PAGINA 1 30 83 1 30 83 1 30 83 e nao como deveria : LIVRO POS PAGINA 1 0 1 1 1 1 1 2 1
    • Por mr22robot
      Ola caros amigos. 
      Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
      Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
      Mas estou agarrado em uma situação. 
      Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes. 
      Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
      Ex: 
      SELECT CODPROD,DESCRICAO FROM PRODUTO WHERE CODPROD IN(1,2,3,4,5,6) Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
      Desde já obrigado pela ajuda.
×

Informação importante

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