Clipper On Line • Ver Tópico - erro em INSERT no MySQL com Harbour e RDD

erro em INSERT no MySQL com Harbour e RDD

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

erro em INSERT no MySQL com Harbour e RDD

Mensagempor cjp » 15 Jul 2015 13:41

Pessoal, estou recebendo de vez em quando o seguinte erro:

Erro: 42000 [MySQL][ODBC 3.51 Driver][mysqld-5.6.10-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 ''Acresci o PDF.' at line 1


O comando no qual deu erro desta vez foi:

INSERT INTO tarefas values ('N','N656','2010-07-15','2015-01-01',9,'Inacio','N','E','MP',15,0,0,' ','40610-35.2013','2015-07-14','09:39:23','Acresci o PDF.',' ','2000-01-01','2000-01-01')


Mas também ocorre com UPDATE com frequência.

O problema é que não consigo achar nenhum erro no comando acima (nem nos demais em que dá erro).

A estrutura da tabela está assim:

         cQuery:="CREATE TABLE tarefas ("+;
        "USUARIO char(1),"+;
         "NRTAREFA char(7),"+;
          "HREXIBE datetime,"+;
         "DTMAXIMA date,"+;
          "PRIORIDADE int,"+;
          "INCLUIDOR char(15),"+;
        "SOLUC char(1),"+;
        "EXIBE char(1),"+;
        "VINCULO char(20),"+;
        "TEMPOESTIM decimal(7,1),"+;
        "TEMPOUSADO decimal(7,1),"+;
        "TEMPOCOMPU decimal(7,1),"+;
        "CAMPO char(1),"+;
          "ASSUNTO char(30),"+;
        "DATA date,"+;
          "HORA char(8),"+;
          "TAREFA char(60),"+;
        "ATIND char(1),"+;
        "DTCARGA date,"+;
        "DTPREFER date)"


O pior é que o erro acontece apenas de vez em quando, aleatoriamente.

Não deve ser conexão, pois eu testo a conexão antes desse comando.

Alguém poderia me ajudar a achar esse erro?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

erro em INSERT no MySQL com Harbour e RDD

Mensagempor sygecom » 15 Jul 2015 20:33

cade os campo no comando INSERT ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

erro em INSERT no MySQL com Harbour e RDD

Mensagempor JoséQuintas » 16 Jul 2015 14:37

No caso dos nomes de campo no insert é opcional, mas nesse caso fica dependente da ordem exata da estrutura.
Só não lembro agora se vai o "VALUES" quando não se descrevem os campos, mas como disse que é só em alguns, é provável que esteja certo.

Essa linha com conteúdo é a que dá erro?
É uma pergunta idiota, mas é esse mesmo o conteúdo, ou apenas digitou aqui?

Faz diferença a CODEPAGE.
Tem letra que não é válida de uma codepage pra outra.
O nome "inacio" é sugestivo pra um erro desse tipo.
Lembrando que caracteres inválidos nem sempre são visíveis ao mostrar na tela, nem no bloco de notas.

Também data, se estiver vazia, depende do que estiver configurado no servidor, que não é o caso dessa linha.

Por último tamanho de campo, o que à primeira vista no comando está respeitando os tamanhos.

Por coincidência, tive um erro desses ontem, e era a planilha com conteúdo inválido.
Estava importando de Excel pra MySql.
O mais esquisito é que no select veio campo com conteúdo... "sfddsfddfc:\arquivos de programas\..."
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

erro em INSERT no MySQL com Harbour e RDD

Mensagempor JoséQuintas » 16 Jul 2015 14:59

Só acrescentando:
Pra descobrir esse erro que tive, acabei acrescentando um hb_MemoWrit( "teste.txt", cComandoSQL ) no fonte.
Com isso, obtive o comando exato que gerou o último erro.

Convém depois criar uma rotina pra analisar esse txt, procurando caracteres inválidos.
Algo do tipo:

cTxt := MemoRead( "teste.txt" )
FOR nCont = 1 TO Len( cTxt )
   cLetra := Substr( cTxt, nCont, 1 )
   IF .NOT. cLetra $ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
      ? nCont, cLetra, Asc( cLetra ), Substr( cTxt, nCont - 10, 20 )
   ENDIF
NEXT
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

erro em INSERT no MySQL com Harbour e RDD

Mensagempor alxsts » 16 Jul 2015 15:35

Olá!

Creio que as considerações do Quintas são válidas mas, nenhum dos itens citados geraria um erro de sintaxe, como aponta a mensagem retornada pelo SGBD.

Penso que o problema realmente esteja no conteúdo dos campos. Verifique se tem algum campo contendo apóstrofe (Ex: "Caixa d'Água"). Isto pode quebrar a sentença SQL e gerar este tipo de erro.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

erro em INSERT no MySQL com Harbour e RDD

Mensagempor JoséQuintas » 16 Jul 2015 20:32

Já tive essa mensagem algumas vezes, por conter caractere inválido.
Isso de codepage é problemático.

E não adianta testar no HeidiSQL, porque ele já converte pra UTF8.

Tabela ascii do Harbour PTBR

tabelaascii.png


128 a 159 não existem.
Então... são caracteres inválidos para o MySQL, se considerar a mesma codepage.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro