Ir para conteúdo

POWERED BY:

Arquivado

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

Web Design Valdeci

[Resolvido] Não encontro o erro em minha sql

Recommended Posts

Bom Dia,

 

Exportei meu banco de dados que era no access para o mysql utilizando um programa. Ele conseguir exportar tudo direitinho. Só que na hora que tento fazer uma consulta ele não lista nada. Tenho 4363 registros cadastrados.

 

Envio abaixo minha sql para que possam me ajudar.

 

CREATE TABLE `clientes` (
  `c_cliente` int(11) NOT NULL auto_increment,
  `c_dtcad` longtext,
  `c_nome` longtext,
  `c_nomecom` longtext,
  `c_ender` longtext,
  `c_bairro` varchar(255) default NULL,
  `c_cidade` varchar(255) default NULL,
  `c_uf` varchar(255) default NULL,
  `c_cep` varchar(255) default NULL,
  `c_tel` varchar(255) default NULL,
  `c_fax` varchar(255) default NULL,
  `c_cgccpf` varchar(255) default NULL,
  `c_inscr` varchar(255) default NULL,
  `c_contato` varchar(255) default NULL,
  `c_email` varchar(255) default NULL,
  `c_celular` varchar(255) default NULL,
  `c_grupo` int(11) default NULL,
  `c_subgr` varchar(255) default NULL,
  `c_obs1` varchar(255) default NULL,
  `c_obs2` varchar(255) default NULL,
  `c_obs3` varchar(255) default NULL,
  `c_obs4` varchar(255) default NULL,
  `c_obs5` varchar(255) default NULL,
  `c_sit` varchar(255) default NULL,
  `c_horacad` varchar(255) default NULL,
  `c_site` varchar(255) default NULL,
  PRIMARY KEY  (`c_cliente`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4364 ;

-- 
-- Extraindo dados da tabela `clientes`
-- 

INSERT INTO `clientes` (`c_cliente`, `c_dtcad`, `c_nome`, `c_nomecom`, `c_ender`, `c_bairro`, `c_cidade`, `c_uf`, `c_cep`, `c_tel`, `c_fax`, `c_cgccpf`, `c_inscr`, `c_contato`, `c_email`, `c_celular`, `c_grupo`, `c_subgr`, `c_obs1`, `c_obs2`, `c_obs3`, `c_obs4`, `c_obs5`, `c_sit`, `c_horacad`, `c_site`) VALUES 
(1, '20001006', 'nome fantasia da empresa', 'razao social', 'Rua Endereço', 'Bairro', 'BELO HORIZONTE', 'MG', NULL, 'telefone', NULL, NULL, NULL, 'nome do contato', NULL, 'S', 0, 'A', NULL, NULL, NULL, NULL, NULL, '1', NULL, NULL),

Esta é a consulta que estou fazendo no banco:

 

Set consulta01 = Server.CreateObject("ADODB.Recordset")
consulta01.open "SELECT * FROM `clientes` order by c_nome Asc", Conexao

<form name="form1">
            <div align="center">
              <p class="sub_titulo12">Selecione  um cliente:
                <select name="categorias" class="txt" onChange="MM_jumpMenu('parent',this,0)">
                  <option value="#" selected>Escolha uma das opções abaixo.</option>
                  <%
	    While (Not consulta01.EOF)
		id_cat = consulta01.Fields.Item("id").Value
    %>
                  <option value="EditarClienteVer.asp?opc=editar&id=<%=consulta01.Fields.Item("id").Value%>" class="link_cinza_under"><%=consulta01.Fields.Item("C_NOME").Value%></option>
                  <%
	   consulta01.MoveNext()
	   Wend
    %>
                </select>
              </p>
            </div>
          </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu insert tem um , (virgula) no final e não um ; (ponto e virgula)

 

Sem contar que esse SQL que postou está apenas criando a tabela e inserindo apenas 1 contato.

Você postou ele aqui apenas ne forma reduzida com 1 INSERT para exemplificar ou você só tem isso mesmo?

 

Se esse erro de sintaxe que eu disse (da virgula) existir no seu arquivo, então arrume ele em todos os inserts

que você conseguirá importar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado por responder thelon,

 

eu coloquei apenas de exemplo pois meu banco tem mais de 4mil registros. No final eu utilizo o ; sim.

 

Já importei o banco certinho, mas quando vou fazer uma consulta nele ele não lista nada. Penso que deve ser alguma coisa na sintaxe sql pois estes dados foram importados do access por um programa.

 

O estranho é que faço esta mesma consulta em outra tabela e os dados aparecem e quando consulta esta tabela não lista nada.

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdeci boa tarde.

 

Essa consulta está correta,

 

SELECT * FROM `clientes` order by c_nome Asc

Você ta executando direto no banco pra ver se retorna resultado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando esta consulta mesmo direto no banco de dados e não funciona:

 

Veja

 

Aqui eu faço a consulta:

 

Set consulta01 = Server.CreateObject("ADODB.Recordset")
consulta01.open "SELECT * FROM `clientes` order by c_nome Asc", Conexao

Aqui eu recebo os dados:

 

 <form name="form1">
            <div align="center">
              <p class="sub_titulo12">Selecione  um cliente:
                <select name="categorias" class="txt" onChange="MM_jumpMenu('parent',this,0)">
                  <option value="#" selected>Escolha uma das opções abaixo.</option>
                  <%
	    While (Not consulta01.EOF)
		id_cat = consulta01.Fields.Item("id").Value
    %>
                  <option value="EditarClienteVer.asp?opc=editar&id=<%=consulta01.Fields.Item("id").Value%>" class="link_cinza_under"><%=consulta01.Fields.Item("C_NOME").Value%></option>
                  <%
	   consulta01.MoveNext()
	   Wend
    %>
                </select>
              </p>
            </div>
          </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A cardinalidade tem alguma coisa haver?

 

Meu banco tem 4363 registros, esta é a informação que aparece para a tabela. Será que pode ser isso? olhando as outras tabelas com registros, esta cardinalidade fica certinha com a quantidade de ids que vão sendo gerados pelo banco pela chave.

 

Nome chave Tipo Cardinalidade Ações Campo

PRIMARY PRIMARY 4310 C_CLIENTE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdeci faça a consulta direto no banco de dados, não na aplicação.

 

Não tem porque retornar vazio pois a consulta está certa... poste aqui também a estrutura da sua tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

giesta,

 

a consulta esta correta, com certeza o erro é no ASP xexelento da M$.

 

repassando...

 

Esta é uma seção do Fórum iMasters dedicada exclusivamente ao ASP,

Não ofenda-a ou a seus participantes com esse tipo de comentário imbecil, e que não ajuda em nada a sanar a dúvida do amigo Web Design Valdeci.

Como moderador acredito que deva ser sua obrigação manter um nível 'alto' no desenrolar dos tópicos e não expor opiniões pessoais e sem embasamento NENHUM, sobre um tema que sequer está em discussão.

 

 

Se houver interesse em discutir sobre a qualidade e poder do ASP, antes veja uns links com conteúdo interessante:

 

http://imasters.com.br/artigo/11266/asp/asp_uma_tecnologia_mal_interpretada/

 

http://imasters.com.br/artigo/11514/asp/programacao_orientada_a_eventos_e_lambda_function_em_aspvbscript/

 

http://imasters.com.br/artigo/12388/asp/tdd_test_driven_development_em_aspvbscript/

 

http://www.dmxready.com/ebook/classic-asp-myths.pdf

 

http://msdn.microsoft.com/en-us/library/ms972100.aspx

 

http://classicaspsquare.com/View/ASP-Square-Framework

 

http://www.ajaxed.org/

 

http://www.webdevbros.net/category/classic-asp/

 

http://zend.lojcomm.com.br/entries/deploying-and-consuming-web-services-based-in-clas/

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ASP é a lingaguem Web com mais páginas atualmente,

dá um response.write na sua string SQL

 

SQL="SELECT * FROM clientes order by c_nome Asc"
response.write(SQL)
response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa string SQL é bem simples, perceba que ele retorna todos (*) os registros da tabela clientes ordenado pelo c_nome Ascendente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui, eu já fiz a consulta toda certinha, já tentei esta mesma consulta chamando em outra tabela e deu certo mas com esta não, mas esta específica ele não imprime.

 

Já não sei mais o que fazer.

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro ele gera ?

a SQL esta correta

 

SELECT * FROM clientes order by c_nome Asc

 

você não esta passando nenhum valor na clausula WHERE, ele simplesmente retorna todos (*) os registros da tabela clientes ordenado pelo c_nome Ascendente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, amigo...

 

qualquer dúvida posta ae...

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.