Página 1 de 1

Classe TMYSQL gravando apenas 0 nos campos

Enviado: 13 Abr 2008 20:35
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

Enviado: 14 Abr 2008 11:10
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

Classe TMYSQL gravando apenas 0 nos campos

Enviado: 15 Abr 2012 16:39
por fladimir
E aí Luciano conseguiu terminar?

[]´s