TeixeiraRamos 4 Denunciar post Postado Janeiro 31, 2018 Vamos supor que nesse exemplo tenha um campo numérico como ficaria? Considerando que trabalhei o banco de dados MySQL. Entendo que no comando fica as aspas simples assim para campo, digamos, texto: INSERT INTO XTESTE (Codigo, Localidade) VALUES(12345, 'LISBOA') Meu problema é quando a sintaxe SQL é escrita dentro da linguagem ASP com um campo numérico como fica? sql = "INSERT INTO LIVROS (LIVRO, AUTOR, EDITORA) VALUES (" sql = sql & "'" & Request.Form("FormNomeLivro") & "', " sql = sql & "'" & Request.Form("FormNomeAutor") & "', " sql = sql & "'" & Request.Form("FormNomeEditora") & "'" sql = sql & ")" sql = "UPDATE LIVROS SET " sql = sql & "LIVROS = '" & Request.Form("FormNomeLivro") & "', " sql = sql & "AUTOR = '" & Request.Form("FormNomeAutor") & "', " sql = sql & "EDITORA = '" & Request.Form("FormNomeeDitora") & "' " sql = sql & "WHERE ID = " & Request.Form("FormCodigoLivro") Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 3, 2018 Por favor, A tentar incluir registro com o código: ' Verifica se o arquivo foi chamado a partir de um formulário If Request.QueryString("acao") = "adicionar" then sql = "INSERT INTO tb_registros_para_controle(nome_livro, nome_autor, nome_editora, quant_fl, fl_parei, " sql = sql & " data_inicio, data_termino, data_paralisacao, " sql = sql & " segunda_feira, terca_feira, quarta_feira, quinta_feira, " sql = sql & " sexta_feira, sabado, domingo, observacao ) VALUES (" sql = sql & "'" & Request.Form("FormNomeLivro") & "', " sql = sql & "'" & Request.Form("FormNomeAutor") & "', " sql = sql & "'" & Request.Form("FormNomeEditora") & "', " sql = sql & "'" & Request.Form("FormQuantFl") & ", " sql = sql & "'" & Request.Form("FormFlParei") & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataInicio") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataTermino") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataParalisacao")&"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataSegunda") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataTerca") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataQuarta") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataQuinta") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataSexta") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataSabado") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataDomingo") &"','%d/%m/%Y')" & ", " sql = sql & "'" & Request.Form("FormNomeObservacao") & "' " sql = sql & ")" Mostra o Erro: Citar Erro: [MySQL][ODBC 3.51 Driver][mysqld-5.7.20-log]Column count doesn't match value count at row 1 O mesmo INSERT INTO digitando direto no bando de dados inclui o registro: INSERT INTO tb_registros_para_controle (id_registros, nome_livro, nome_autor, nome_editora, quant_fl, fl_parei, data_inicio, data_termino, data_paralisacao, segunda_feira, terca_feira, quarta_feira, quinta_feira, sexta_feira, sabado, domingo, observacao ) VALUES ( 56,'Intrução HTML3 e CSS3','Richard Clark','Alta Book', 623, 20, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 0000-00-00, 'teste'); Por favor. Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Fevereiro 3, 2018 não é o mesmo "Insert", aparentemente faltou o principal (o id); verifique. a proposito: considere trocar essas expressões: Request.Form("FormNomeObservacao") por variaveis; seu codigo vai ficar bem mais legivel. Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 3, 2018 Olá Fernando, Obrigado pela ajuda, mas o código é o mesmo sim, inclusive é um exemplo de um livro. Com relação as expressões concordo que eu poderia caprichar mais , mas desde que estejam digitadas corretamente não seria impedimento para não manipular dados. Inclusive, no INSERT (o id), por ser do tipo "AUTO_INCREMENT", pode entrar ou não no INSERT INTO. Eu coloco as vezes para recuperar um "id" que foi excluído. Pode tentar. Se não colocar na expressão o registro será incluído sem Erro. Inclusive, Fernando, se eu retirar essas 2 (duas) colunas quant_fl, fl_parei, que criei depois de tudo pronto, funciona perfeitamente. O comando INSERT pode falhar, mas acredito que já vi todas as possibilidades. Todas? Não, tem algo errado senão não daria o Erro. Já fique horas tentando, mas nada. Pode ser que estou errando nas quebras de linhas ou em uma ( ' ) ou ( " ), ou ainda (", " ) ( , ) Não é à toa que pedem para ter muita atenção nas ( '), (" ")..., mas não daria esse Erro. Concorda? Mas, Fernando valeu! Sempre é bom uma alerta. Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 4, 2018 Bem, Retirei duas aspas simples dos dois campos numérico, aqui: sql = sql & " " & Request.Form("FormQuantFl") & ", " sql = sql & " " & Request.Form("FormFlParei") & ", " Com isso entrei com um novo registro e não apresentou Erro e o registro foi salvo no banco de dados. Já Inclui, Editei e Exclui registro e funcionou. Muito obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 4, 2018 Que comédia. Ontem fiz todos os testes, tudo indicava que foi resolvido, mas não. Agora fui editar e alterar um registro voltou a mostrar erro. Continua erro e é no campo "quant_fl". Que loucura. Citar Erro: [MySQL][ODBC 3.51 Driver][mysqld-5.7.20-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' data_inicio = STR_TO_DATE('','%d/%m/%Y'), data_termino = STR_TO_DA' at line 1 Observo que não entrei com nenhuma data, no campo "data_inicio" e nem no campo "data_termino". Só digitei "quant_fl" e mostra Erro no campo data? Será que aqui estou deixando o campo numerico com formatação de data? 'Executa a alteração do registro, se solicitada Elseif Request.QueryString("acao") = "editar" then sql = "UPDATE tb_registros_para_controle SET " sql = sql & "nome_livro = '" & Request.Form("FormNomeLivro") & "', " sql = sql & "nome_autor = '" & Request.Form("FormNomeAutor") & "', " sql = sql & "nome_editora = '" & Request.Form("FormNomeEditora") & "', " sql = sql & "quant_fl = " & Request.Form("FormQuantFl") & ", " sql = sql & "fl_parei = " & Request.Form("FormFlParei") & ", " sql = sql & "data_inicio = STR_TO_DATE('" & Request.Form("FormDataInicio") &"','%d/%m/%Y')" & ", " sql = sql & "data_termino = STR_TO_DATE('" & Request.Form("FormDataTermino") &"','%d/%m/%Y')" & ", " sql = sql & "data_paralisacao = STR_TO_DATE('" & Request.Form("FormDataParalisacao") &"','%d/%m/%Y')" & ", " sql = sql & "segunda_feira = STR_TO_DATE('" & Request.Form("FormDataSegunda") &"','%d/%m/%Y')" & ", " sql = sql & "terca_feira = STR_TO_DATE('" & Request.Form("FormDataTerca") &"','%d/%m/%Y')" & ", " sql = sql & "quarta_feira = STR_TO_DATE('" & Request.Form("FormDataQuarta") &"','%d/%m/%Y')" & ", " sql = sql & "quinta_feira = STR_TO_DATE('" & Request.Form("FormDataQuinta") &"','%d/%m/%Y')" & ", " sql = sql & "sexta_feira = STR_TO_DATE('" & Request.Form("FormDataSexta") &"','%d/%m/%Y')" & ", " sql = sql & "sabado = STR_TO_DATE('" & Request.Form("FormDataSabado") &"','%d/%m/%Y')" & ", " sql = sql & "domingo = STR_TO_DATE('" & Request.Form("FormDataDomingo") &"','%d/%m/%Y')" & ", " sql = sql & "observacao = '" & Request.Form("FormNomeObservacao") &"' " sql = sql & "WHERE id_registros = " & Request.Form("FormCodigoLivro") Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 4, 2018 Não sei porque seu Editar e deixar os campos sql = sql & "quant_fl = " & Request.Form("FormQuantFl") & ", " sql = sql & "fl_parei = " & Request.Form("FormFlParei") & ", " Não faz o UPDATE e mostra Erro Citar Erro: [MySQL][ODBC 3.51 Driver][mysqld-5.7.20-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' fl_parei = , data_inicio = STR_TO_DATE('','%d/%m/%Y'), data_t' at line 1 Porém se alterar apenas as datas e manter os campos quant_fl e fl_parei com os valores funciona. Tem que alterar o código ou alguma coisa no banco de dados MySQL? Compartilhar este post Link para o post Compartilhar em outros sites
TeixeiraRamos 4 Denunciar post Postado Fevereiro 5, 2018 O que fiz para conseguir entrar com os registros? No banco de dados indiquei 0 como "Defaust" para os campos tipo int - "quant_fl" e "fl_parei", mas continuo sem tender. Compartilhar este post Link para o post Compartilhar em outros sites