Classe TMYSQL gravando apenas 0 nos campos

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Classe TMYSQL gravando apenas 0 nos campos

Mensagem por Luciano Bonfim »

estou usando xharbour 1.0.0 e a classe TMYSQL da contrib, gerei a LIB usando os includes que meu provedor de hospedagem usa (eles me enviaram) só näo recebi ainda a LIBMYSQL.DLL (pq esqueci de pedir rs)

minha aplicaçäo está se conectando com o servidor corretamente, está abrindo o banco de dados corretamente, está criando a estrutura da minha tabela corretamente, mas quando vou inserir os dados näo dá erro nenhum e quando vou olhar a tabela lá no meu servidor WEB todos os campos CARACTER estäo com valor ZERO, os campos DATA e NUMÉRICO estäo indo corretamente

Será que é porque estou usando a LIBMYSQL diferente da que meu provedor usa?

o fato do meu provedor usa o mysql em linux e meu sistema rodar em windows interfere em alguma coisa?

segue abaixo o código que estou utilizando

oRecord:FieldPut(i, FieldGet(i)) // O PROBLEMA É AQUI

Código: Selecionar todos


oServer:=TMYSQLSERVER():NEW(cHostName,cUserName,cPassword)

IF oServer:NETERR() // Falha na conexão com o banco de dados
   MSGSTOP(oServer:ERROR())
   oServer:DESTROY()
   RETURN
ENDIF

cQuery := 'USE gopec_integracao'
oQuery := oServer:QUERY(cQuery)
IF oQuery:NETERR() // Falha na utilização do banco de dados
   MSGSTOP(cQuery+CRLF+;
           ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+;
           oQuery:ERROR())
   oQuery:DESTROY()
   RETURN
ENDIF

select TMP2
dbf2Mysql("suprimento",.t.)

function dbf2Mysql
parameters cTable,lCreateTable
local cTok, nTok := 1
local aDbfStruct, i
local oTable, oRecord

aDbfStruct := dbStruct()
if lCreateTable
   if Ascan(oServer:ListTables(), cTable) > 0
      oServer:DeleteTable(cTable)
      if oServer:NetErr()
         ? oServer:Error()
         return(.f.)
      endif
   endif
   oServer:CreateTable(cTable, aDbfStruct)
   if oServer:NetErr()
      ? oServer:Error()
      quit
   endif
endif

oTable := oServer:Query("SELECT * FROM " + cTable + " LIMIT 1")
if oTable:NetErr()
   Alert(oTable:Error())
   return(.f.)
endif

go top
do while !eof()
   oRecord := oTable:GetBlankRow()

   for i := 1 to FCount()
      oRecord:FieldPut(i, FieldGet(i))  
   next

   oTable:Append(oRecord)
   if oTable:NetErr()
      Alert(oTable:Error())
   endif
   dbSkip()
enddo
dbCloseArea()
oTable:Destroy()
return(.t.)

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

resolvi o problema usando a libmysql.lib e a libmysql.dll da versao correta do MYSQL do servidor... agora está funcionando tudo perfeito....

assim que terminar minha rotina de sincronismo DBF para MYSQL na WEB e MYSQL para DBF posto em código fonte ...

valeu
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Classe TMYSQL gravando apenas 0 nos campos

Mensagem por fladimir »

E aí Luciano conseguiu terminar?

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder