edutraini Posted December 6, 2021 Report Share Posted December 6, 2021 Bom dia, Pessoal Gostaria de usar o sqlrdd com mysql consegui fazer a conexao mas nao consigo jogar os dbfs existe alguma propriedade que precisa ser alterada e ainda gostaria de saber a opiniao de voces se vale a pena usar mariadb no lugar no mysql Quote Link to comment Share on other sites More sharing options...
sygecom Posted December 6, 2021 Report Share Posted December 6, 2021 Sobre jogar os DBF, veja esse app de exemplo abaixo que consegue fazer isso para você. http://www.pctoledo.com.br/forum/filebase.php?d=1&id=158&searchword=sql&what=s&page=1 Sobre MARIADB vs MYSQL, eu ficaria com MARIADB por causa da licença de uso do MYSQL, até onde eu sei, pode ser usado desde que o projeto seja de código aberto. Sobre SQLRDD, fuja dele o quanto antes, vai ficar preso no xHarbour e, isso é um tiro no pé, o Harbour está mais evoluído. Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted December 6, 2021 Report Share Posted December 6, 2021 //============================================================================== Procedure UpLoad() Local aFiles,cFile,cTable,nTime,cRDD,oErr,aDBF,nI Set AutOpen OFF aDBF := Directory(DefPath()+"\arq\*.DBF") aFiles :={} For nI:=1 TO Len(aDBF) AAdd(aFiles,Trim(aDBF[nI,1])) Next //Sys_Meter(1,0,"Importando o arquivo") nTime:=Seconds() For Each cFile IN aFiles cTable := Lower(cFileNoExt(cFile)) If File(cFile+".dbf") .and. !SR_ExistTable(cFile) Try cRDD := IIF(File(cFile+".dbt"),"DBFCDX","DBFNTX") DBUseArea(.T.,cRDD,cFile,"TEMP",.F.) If LastRec() > 0 //Sys_Meter(2,LastRec(),"Importando o arquivo "+cFile+".DBF") FastTurbo(cTable) Endif DBCloseArea() Catch oErr XBrowser oErr title cFile DBCloseArea() End Endif Next MsgStop(SecToTime(Seconds()-nTime),"Tempo de conversão de Dbf para Sql") //Sys_Meter(3) Return **===================================================================== Static Function FastTurbo(cTable) Local aStru := DBStruct() Local cSql If Sr_ExistTable(cTable) Sr_DropTable(cTable) Endif DBCreate(cTable,aStru,"SQLRDD") DBGoTop() Do While !Eof() cSql := SqlInsert(cTable,aStru) Sr_GetConnection():Execute(cSql) DBSkip() Sys_Meter(2) Enddo Sr_GetConnection():Commit() Return nil **===================================================================== Static Function SqlInsert(cTable,aStru) Local nI,uVal,aCampos:={},cSql For nI:=1 To Len(aStru) uVal := FieldGet(nI) uVal := SQL_String(uVal,.T.) AAdd(aCampos,{aStru[nI,1],uVal}) Next //Define os campos cSql := "Insert Into "+cTable+" ("+aCampos[1,1] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,1] Next //define os dados cSql += ") Values ("+aCampos[1,2] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,2] Next cSql+=");" Return cSql Edu, se vc conseguiu fazer a conexão, basta ajustar pasta do seus arquivos para carregar aDBF. Uso a SQLRDD e estou muito contente, não encontro nenhuma dificuldade, banco criado pela sqlrdd é usado por aplicativos web e android, claro que se faz necessário tomar certos cuidados como: -Set delete off -Não cria índices sintéticos - sempre criar tabela via SQLRDD - Controle transacional blz Quote Link to comment Share on other sites More sharing options...
edutraini Posted December 9, 2021 Author Report Share Posted December 9, 2021 Bom dia, Jm Coloquei a sua rotina para migrar o dbf para dentro do sql e esta dando esse erro abaixo sera que vc consegue me ajudar por favor Obrigado 09/12/2021 08:51:53: SQLExecDirect Error (1064) 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 'Type=InnoDb' at line 107 - 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 'Type=InnoDb' at line 107 Command sent to database : CREATE TABLE `dclicli0` ( `codcli` REAL (6,0) , `cgccli` CHAR (14) , `nome` CHAR (60) , `endereco` CHAR (60) , `bairro` CHAR (50) , `cidade` CHAR (60) , `nro` REAL (6,0) , `complement` CHAR (20) , `emailfis` CHAR (100) , `observacao` CHAR (100) , `cep` CHAR (9) , `cxpostal` CHAR (5) , `estado` CHAR (2) , `telefone1` CHAR (14) , `telefone2` CHAR (14) , `fax` CHAR (14) , `telex` CHAR (12) , `estadualrg` CHAR (19) , `contato` CHAR (30) , `pracapgto` CHAR (40) , `bairpgto` CHAR (30) , `cidapgto` CHAR (30) , `ufpgto` CHAR (2) , `ceppgto` CHAR (9) , `localentre` CHAR (60) , `tipoclient` CHAR (1) , `fantasia` CHAR (20) , `dtcadastro` DATE, `banco` CHAR (3) , `dtultcpa` DATE, `vlrultcpa` REAL (12,2) , `dtmaiorcpa` DATE, `vlmaiorcpa` REAL (12,2) , `vlrcpames` REAL (14,2) , `dtchequesf` DATE, `vlchequesf` REAL (12,2) , `mediatrazo` REAL (4,0) , `dataatrazo` DATE, `medatraant` REAL (4,0) , `limitecred` REAL (12,2) , `datacred` DATE, `transporte` REAL (4,0) , `condpgto` CHAR (2) , `vendedor` REAL (3,0) , `aliqicms` REAL (5,2) , `maladireta` CHAR (1) , `nivel` REAL (3,0) , `tipoconsu` CHAR (1) , `email` CHAR (50) , `f_j` CHAR (1) , `vendedor1` REAL (3,0) , `vendedor2` REAL (3,0) , `vendedor3` REAL (3,0) , `vendedor4` REAL (3,0) , `vendedor5` REAL (3,0) , `vendedor6` REAL (3,0) , `tpcredito` CHAR (1) , `pesoteoric` REAL (6,3) , `obs` VARCHAR (400) , `obsfin` CHAR (200) , `dtusu` DATE, `usuario` REAL (3,0) , `site` CHAR (100) , `stvenda` CHAR (1) , `ramal1` REAL (6,0) , `ramal2` REAL (6,0) , `isentaipi` CHAR (1) , `etiqueta` TINYINT, `tirafluxo` CHAR (1) , `segmento` CHAR (2) , `tipofrete` CHAR (1) , `suframa` CHAR (20) , `pedidonfe` CHAR (1) , `tipoie` CHAR (1) , `midia` CHAR (1) , `percperda` REAL (8,4) , `nomecon1` CHAR (40) , `fonecon1` CHAR (14) , `emailcon1` CHAR (50) , `nomecon2` CHAR (40) , `fonecon2` CHAR (14) , `emailcon2` CHAR (50) , `nomecon3` CHAR (40) , `fonecon3` CHAR (14) , `emailcon3` CHAR (50) , `nomecon4` CHAR (40) , `fonecon4` CHAR (14) , `emailcon4` CHAR (50) , `nomecon5` CHAR (40) , `fonecon5` CHAR (14) , `emailcon5` CHAR (50) , `nomecon6` CHAR (40) , `fonecon6` CHAR (14) , `emailcon6` CHAR (50) , `regiao` CHAR (2) , `potencial` CHAR (2) , `obsate` MEDIUMBLOB, `isuf` CHAR (20) , `tabcom1` CHAR (1) , `tabcom2` CHAR (1) , `tabcom3` CHAR (1) , `tabcom4` CHAR (1) , `tabcom5` CHAR (1) , `tabcom6` CHAR (1) , `sr_recno` BIGINT (15) NOT NULL UNIQUE AUTO_INCREMENT , `sr_deleted` CHAR (1) NOT NULL ) Type=InnoDb Steatment handle : Connection handle : RetCode : 1064 SR_MYSQL:RUNTIMEERR Linha : 859 SR_MYSQL:EXEC Linha : 367 SR_WORKAREA:SQLCREATE Linha : 5030 DBCREATE Linha : 0 FASTTURBO Linha : 3041 UPLOAD Linha : 3016 CONECTAR Linha : 704 (b)MAIN Linha : 248 TMDIFRAME:ACTIVATE Linha : 1083 MAIN Linha : 248 Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 11, 2021 Report Share Posted December 11, 2021 Tive o mesmo erro. Depois de alguns ajustes, ficou assim: Procedure BkpNuvem() Local aFiles,cFile,cTable,nTime,oErr,aDBF,nI oSql := SR_GetConnection() cDBN := UPPER( SR_GetConnectionInfo(, SQL_DBMS_NAME ) ) SR_End() CLOSE ALL Set AutOpen OFF aDBF := Directory(cPasta+"\*.dbf") aFiles :={} For nI:=1 TO Len(aDBF) AAdd(aFiles,Trim(aDBF[nI,1])) Next nTot := Len(aFiles) nReg := 0 nMtr := 0 cSay := "Salvando backup em nuvem. Aguarde..." DEFINE DIALOG oDmeter FROM 0,0 TO 6, 35 TITLE "Verificação de dados" STYLE DS_MODALFRAME @05,05 SAY oSay PROMPT cSay PIXEL SIZE 130, 10 OF oDmeter UPDATE @15,05 METER oMeter VAR nMtr TOTAL nTot SIZE 130, 12 OF oDmeter UPDATE PIXEL ACTIVATE DIALOG oDmeter CENTER NOWAIT VALID (!GetKeyState( VK_ESCAPE ) .AND. !GetKeyState( VK_MENU )) SysRefresh() nTime:=Seconds() For Each cFile IN aFiles cTable := Lower(cFileNoExt(cFile)) cSay := "Salvando backup de "+cTable+"..." oDmeter:Update() Try USE &(cTable) EXCLUSIVE NEW VIA "DBFCDX" // DBUseArea(.T.,"DBFCDX",cFile,"TEMP",.F.) If LastRec() > 0 FastTurbo("bkp_"+cTable) Endif DBCloseArea() Catch oErr XBrowser oErr title cFile DBCloseArea() End nReg ++ oMeter:Set(nReg) oMeter:Refresh() Next nReg := nTot oMeter:Set(nReg) oMeter:Refresh() SysWait(0.25) oDmeter:End() MsgStop("Backup em nuvem concluído em "+SecToTime(Seconds()-nTime)+"h.", "Informação do sistema") * AbreDados() Return **===================================================================== Static Function FastTurbo(cTable) Local aStru := DBStruct() Local cSql n_Conn := nConection(2) IF n_Conn = 0 ; RETURN NIL ; ENDIF If Sr_ExistTable(cTable) Sr_DropTable(cTable) Endif cComm := XB2SqlStr(aStru, cTable) nErr := SR_GetConnection():Execute( cComm ) DBGoTop() Do While !Eof() cSql := SqlInsert(cTable, aStru) SR_GetConnection():Execute(cSql) DBSkip() Enddo Sr_GetConnection():Commit() Return nil **===================================================================== Static Function SqlInsert(cTable,aStru) Local nI,uVal,aCampos:={},cSql For nI:=1 To Len(aStru) uVal := FieldGet(nI) uVal := Any2SqlStr(uVal) AAdd(aCampos,{aStru[nI,1],uVal}) Next //Define os campos cSql := "Insert Into "+cTable+" ("+aCampos[1,1] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,1] Next //define os dados cSql += ") Values ("+aCampos[1,2] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,2] Next cSql+=");" Return cSql FUNCTION XB2SqlStr(aStr, cDBase) LOCAL cStrct cStrct := "CREATE TABLE `"+LOWER(cDBase)+"` (" FOR nF := 1 TO LEN(aStr) IF LOWER(aStr[nF,1]) != "sr_recno" IF nF > 1 ; cStrct += ", " ; ENDIF // Mais de um campo cStrct += "`"+LOWER(aStr[nF,1])+"` "+SetFType(aStr[nF,2],aStr[nF,3],aStr[nF,4]) ENDIF NEXT IF LEN(aStr) > 0 ; cStrct += ", " ; ENDIF // Já acrescentado algum campo cStrct += "`sr_recno` BIGINT (15) NOT NULL UNIQUE AUTO_INCREMENT)" // Sempre criar o 'sr_recno' no final, para compatibilizar com SQLRDD RETURN( cStrct ) STATIC FUNCTION SetFType(cTipo,nSize,nDeci) LOCAL cFType IF cTipo = "C" IF nSize <= 255 cFType := "char("+ALLTRIM(STR(nSize))+")" ELSE cFType := "mediumblob" ENDIF ELSEIF cTipo = "M" ; cFType := "mediumblob" ELSEIF cTipo = "N" ; cFType := "double("+ALLTRIM(STR(nSize))+","+ALLTRIM(STR(nDeci))+")" ELSEIF cTipo = "L" ; cFType := "tinyint(4)" ELSEIF cTipo = "D" ; cFType := "date" ENDIF RETURN(cFType) STATIC FUNCTION Any2SqlStr(uVal) LOCAL Dados := "" IF VALTYPE(uVal) = "C" ; Dados := "'"+STRTRAN(ALLTRIM(uVal), "'", "")+"'" ELSEIF VALTYPE(uVal) = "M" ; Dados := "'"+STRTRAN(ALLTRIM(uVal), "'", "")+"'" ELSEIF VALTYPE(uVal) = "D" ; Dados := "'"+SR_dtosdot(uVal)+"'" ELSEIF VALTYPE(uVal) = "N" ; Dados := ALLTRIM(STR(uVal)) ELSEIF VALTYPE(uVal) = "L" ; Dados := "'"+IIF(uVal = .T., "1", "0")+"'" ENDIF RETURN(Dados) Mas ainda deu um erro no meio do upload de uma das tabelas. Ainda vou verificar ou que houve. Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted December 11, 2021 Report Share Posted December 11, 2021 Edu não pude simular o seu erro ainda, para semana farei isso, mas causa provável como o próprio erro evidência, está na criação do banco de dados, tipo innodb, myISAM. Tem comandos próprios do mysql para reparar isso. Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted December 11, 2021 Report Share Posted December 11, 2021 Amigo Não sei se vai servir pra vc, mas tenho uma rotina bem xulé bem antiga em conmsole, embora eu a uso ainda, pq a preguiça e a falta de capacidade, são maiores que a inteligência ahahaha, mas me quebra o galho e não perco tempo. //Upload de tabelas Dbf x Sql ' oCon := SR_GetActiveConnection() SR_CheckCnn( oCon ) WHILE .T. CLEAR SCREEN x_path1 := x_file1 := x_file2 := SPACR( 70 ) @ 08,00 SAY "Path origem....: " GET x_path1 PICT "@!" @ 10,00 SAY "Tabela origem..: " GET x_file1 PICT "@!" VALID( ! EMPTY(x_file1) ) @ 11,00 SAY "Tabela destino.: " GET x_file2 PICT "@!" VALID( ! EMPTY(x_file2) ) READ IF LASTKEY()==27 CLOSE ALL QUIT ENDIF DiretorioOrigem := rtrim(ltrim(x_path1)) FilerOrigem := rtrim(ltrim(x_file1)) DriveOrigem := "" DriveOrigem := IIF("\\" $ DiretorioOrigem, "", IIF(":" $ DiretorioOrigem,"",CURDRIVE() + ":") ) IF ! File(DriveOrigem + DiretorioOrigem + FilerOrigem+".DBF") ERRMSG1("Tabela DBF de origem não encontrada") CLOSE ALL LOOP ENDIF DriveDestino := "" DiretorioDestino := "" //LimpaStr(x_path1) FileDestino := LimpaStr(x_file2) xCria := .T. IF FileSql(FileDestino) IF ! ERRMSG2("Tabela já existe no BD, copia S/N?") CLOSE ALL LOOP ELSE if ! ERRMSG2("Elimina a tabela S/N?") ERRMSG1("Tabela não eliminada",23) CLOSE ALL LOOP ENDIF SR_DropTable( FileDestino ) //deleta a tabela xCria := .F. ENDIF endif AGUARDE("Abrindo tabela origem") IF SELECT(FilerOrigem) == 0 DbUseArea( .T., "DBFCDX" , DriveOrigem + DiretorioOrigem + FilerOrigem, FilerOrigem,.T.) ENDIF AGUARDE("Capturando estrutura") xFields := (FilerOrigem)->(DBSTRUCT()) CLOSE ALL AGUARDE("Verificando a conexão ativa") SR_GetActiveConnection(oCon) IF ERRMSG2("Recria a Tabela S/N?") AGUARDE("Criando estrutura da tabela " + FileDestino + " no BD") DBCREATE(FileDestino,xFields,"SQLRDD") xCria := .T. ELSE CLOSE ALL LOOP ENDIF AGUARDE("Abrindo tabela destino") DbUseArea( .T., "SQLRDD" , FileDestino, FileDestino,.T.) IF ERRMSG2("Limpa a tabela S/N?") ZAP ENDIF if ERRMSG2("Importa a tabela S/N?") AGUARDE("Importando " + DriveOrigem + DiretorioOrigem + FilerOrigem) APPE FROM (DriveOrigem + DiretorioOrigem + FilerOrigem+".DBF") VIA "DBFNTX"//+".DBF" ERRMSG1("Tabela importada - " + DriveOrigem + DiretorioOrigem + FilerOrigem) ENDIF HB_GCAll(.T.) CLOSE ALL ENDDO Quote Link to comment Share on other sites More sharing options...
edutraini Posted December 13, 2021 Author Report Share Posted December 13, 2021 Bom dia a todos Vou testar todos os exemplos postados para ver se consigo depois passo se deu erro Obrigado a todos pela ajuda Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted December 13, 2021 Report Share Posted December 13, 2021 Procedure UpLoad() Local aFiles,cFile,cTable,nTime,cRDD,oErr,aDBF,nI,cDir Set AutOpen OFF cDir := CurDirX()+"arq\" ////func da xhb - curdirx() aDBF := Directory( cDir+"*.dbf") //func da xhb aFiles :={} For nI:=1 TO Len(aDBF) AAdd(aFiles,Trim(aDBF[nI,1])) Next XBrowse(aFiles) //Sys_Meter(1,0,"Importando o arquivo") nTime:=Seconds() For Each cFile IN aFiles cTable := Lower(cFileNoExt(cFile)) If File(cDir+cFile) .and. !SR_ExistTable(cTable) Try cRDD := IIF(File(cDir+cFile+".dbt"),"DBFCDX","DBFNTX") DBUseArea(.T.,cRDD,cDir+cFile,"TEMP",.F.) If LastRec() > 0 //Sys_Meter(2,LastRec(),"Importando o arquivo "+cFile+".DBF") FastTurbo(cTable) Endif DBCloseArea() Catch oErr //XBrowser oErr title cFile MsgStop('erro') DBCloseArea() End Endif Next MsgStop(SecToTime(Seconds()-nTime),"Tempo de conversão de Dbf para Sql") //Sys_Meter(3) Return **===================================================================== Static Function FastTurbo(cTable) Local aStru := DBStruct() Local cSql If Sr_ExistTable(cTable) Sr_DropTable(cTable) Endif DBCreate(cTable,aStru,"SQLRDD") DBGoTop() Do While !Eof() cSql := SqlInsert(cTable,aStru) Sr_GetConnection():Execute(cSql) DBSkip() //Sys_Meter(2) Enddo Sr_GetConnection():Commit() Return nil **===================================================================== Static Function SqlInsert(cTable,aStru) Local nI,uVal,aCampos:={},cSql For nI:=1 To Len(aStru) uVal := FieldGet(nI) uVal := SQL_String(uVal,.T.) AAdd(aCampos,{aStru[nI,1],uVal}) Next //Define os campos cSql := "Insert Into "+cTable+" ("+aCampos[1,1] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,1] Next //define os dados cSql += ") Values ("+aCampos[1,2] For nI:=2 To Len(aCampos) cSql += ","+aCampos[nI,2] Next cSql+=");" Return cSql **======================================================================= FUNCTION Sql_String(xValue,lIsNull,nID ) //SR_cDBValue( <uData>, [<nSystemID>] ) ==> cQuotedString **======================================================================= Local cType := ValType(xValue) Default(@lIsNull,.F.) Default(@nID,SR_GetConnection():nSystemID) If cType == "C" //corrige aspas simples xValue := StrTran(xValue,"'"," ") Endif xValue := SR_SQLQuotedString(xValue,nID) //nid=tipo de banco sql If !lIsNull IF (cType IN "CD") .AND. xValue == "NULL" xValue := "''" ElseIF cType == "N" .AND. xValue == "NULL" xValue := "0" Endif Endif Return xValue Fiz checklist na rotina, acertei alguns pontos, faltou eu postar a rotina Sql_String() que formata os dados, a falta dela pode ter causado o erro. Quote Link to comment Share on other sites More sharing options...
edutraini Posted December 14, 2021 Author Report Share Posted December 14, 2021 bom dia a todos Fiz o teste com a rotina do Ariston e funcionou perfeitamente O unico problema nesse momento esta relacionado aos campos memo Alguns registro deram erro na hora de migrar para tabela Percebi que nesse registro foram gravados caracteres estranhos, provavelmente o usuario digitou ou colou da internet algum texto Usando o slqexpress em cima do windows ele nao da erro mas usando o mariadb em um servidor linux ele nao vai Provavelmente terei que jogar somente a estrutura do arquivo para o banco de dados e depois na hora de importar os dados tentar tratar esses campos tirando esses caracteres Sera que é isso mesmo Obrigado a todos Edu Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 14, 2021 Report Share Posted December 14, 2021 3 horas atrás, edutraini disse: bom dia a todos Fiz o teste com a rotina do Ariston e funcionou perfeitamente O unico problema nesse momento esta relacionado aos campos memo Alguns registro deram erro na hora de migrar para tabela Percebi que nesse registro foram gravados caracteres estranhos, provavelmente o usuario digitou ou colou da internet algum texto Usando o slqexpress em cima do windows ele nao da erro mas usando o mariadb em um servidor linux ele nao vai Provavelmente terei que jogar somente a estrutura do arquivo para o banco de dados e depois na hora de importar os dados tentar tratar esses campos tirando esses caracteres Sera que é isso mesmo Obrigado a todos Edu A rotinha não é minha. Parece que é de Jmsilva. Uma sugestão é modificar a função Any2SqlStr(uVal), inserindo uma função que remova os caracteres especiais dos campos memo nesta linha: ELSEIF VALTYPE(uVal) = "M" ; Dados := "'"+STRTRAN(ALLTRIM(uVal), "'", "")+"'" Remova tudo que não for letras e números, inclusive CR e LF. Deixe apenas caracteres normais. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 14, 2021 Report Share Posted December 14, 2021 Ariston, essa rotina que você postou, em minha modesta opinião, é puro show(), só de olhar, já encheu os olhos na perfeição. Gostei muito. abs. Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 14, 2021 Report Share Posted December 14, 2021 1 hora atrás, kapiaba disse: Ariston, essa rotina que você postou, em minha modesta opinião, é puro show(), só de olhar, já encheu os olhos na perfeição. Gostei muito. abs. Obrigado, amigo. Mas quem postou primeiro foi o Jmsilva. Eu também gostei muito dela por ser bem prática. Fiz algumas modificações visto que não compilou de primeira. Muito obrigado, Jmsilva Quote Link to comment Share on other sites More sharing options...
edutraini Posted December 15, 2021 Author Report Share Posted December 15, 2021 Boa tarde a todos Queria agradecer a todos que me ajudaram tudo funcionando perfeitamente. Um unica duvida se tem como colocar a dll libmysql dentro do sistema ou tem que jogar na pasta aonde esta executavel Obrigado Quote Link to comment Share on other sites More sharing options...
alex2002 Posted December 16, 2021 Report Share Posted December 16, 2021 Em 15/12/2021 at 13:01, edutraini disse: Boa tarde a todos Queria agradecer a todos que me ajudaram tudo funcionando perfeitamente. Um unica duvida se tem como colocar a dll libmysql dentro do sistema ou tem que jogar na pasta aonde esta executavel Obrigado Não tem como colocar a DLL dentro seu sistema. Por isso ela é uma DLL, vc tem que ter ela na pasta da aplicação (ou conforme o ambiente). Eduardo, já terminou a questão do Atualizador? Você não me ligou mais. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
edutraini Posted December 16, 2021 Author Report Share Posted December 16, 2021 Boa tarde, Alex Eu tentei executar mas nao consegui me conectar no meu ftp ate te passei usuario e senha para ver se conseguia Vou te chamar no zap Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.