Jump to content
Fivewin Brasil

CIACPD

Membros
  • Posts

    377
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by CIACPD

  1. Márcio, voce precisa apenas fazer as conecções, veja abaixo: as variáveis que uso são chost_principal, chost_local, db , user, pwd nConn1 = Número da Primeira conecção nConn2 = Número da Segunda Conecção chost_principal = IP loja matriz chost_local = IP loja filial db = Base de Dados user = Usuário pwd = Senha // Primeira SQL CONNECT ON alltrim( chost_principal ) PORT 3306 DATABASE db USER user PASSWORD pwd LIB "MySQL" nConn1:= SQLGetConnection() If nConn1 = 0 status_replica:=.f. sysrefresh() stop_replica() return .t. endif // Segunda SQL CONNECT ON alltrim( chost_local ) PORT 3306 DATABASE db USER user PASSWORD pwd LIB "MySQL" nConn2:= SQLGetConnection() If nConn2 = 0 SQL DISCONNECT FROM nConn1 status_replica:=.f. sysrefresh() stop_replica() return .t. endif no meu caso o db (base de dados) é igual o que muda é o local chost_local e chost_principal no seu caso o local seria igual e a base de dados que muda db1 e db2 Daniel Segura
  2. SQLLIB para MySql SQLRDD para os demais este código que postei é usado com a SQLLIB. Daniel Segura
  3. Márcio, tentei de varias formas, trigger , replicação pelo próprio banco mas só funcionou perfeito via programação. abaixo uma rotina do módulo para voce ver como eu faço a atualização da tabela grupo de produtos //----------------------------------------------------------------------------// function nivela_grupro() // nivelamento cadastro de grupo ida sqlsetconnection(nConn2) cPesq_Sql:= "SELECT * FROM grupro WHERE grupro.DTALTERA >="+STR_SQL ( ddtinicio )+"order by grupro.CODGRU" fecha("grupro") use grupro as cPesq_Sql alias grupro new via 'mysql' sqlsetconnection(nConn1) do while !eof() .and. !lsair fecha("peslocal") xsql:= "SELECT * FROM grupro where grupro.CODGRU= '"+(grupro->codgru)+"'" use grupro as xsql alias peslocal new via 'mysql' go top if eof() TRY SqlExec("Start Transaction") INCLUIX( "grupro", "grupro", { {"CODGRU" , grupro->codgru }, ; {"DESGRU" , grupro->desgru }, ; {"MARCOM" , grupro->marcom }, ; {"PERLUC" , grupro->perluc }, ; {"DEPART" , grupro->depart }, ; {"MEN1GRU", grupro->men1gru},; {"MEN2GRU", grupro->men2gru},; {"DTALTERA", grupro->DTALTERA},; {"HRALTERA", grupro->HRALTERA},; {"PROXGRU", grupro->PROXGRU}} ) SqlExec("Commit") CATCH SqlExec("RollBack") END else if ( peslocal->DTALTERA < ddtinicio ) .or. ( peslocal->DTALTERA = ddtinicio .and. peslocal->HRALTERA < grupro->HRALTERA ) TRY SqlExec("Start Transaction") ALTERAX( "grupro", "CODGRU='"+grupro->codgru+"'", { { "DESGRU" , grupro->desgru }, ; { "MARCOM" , grupro->marcom }, ; { "PERLUC" , grupro->perluc }, ; { "DEPART" , grupro->depart }, ; { "MEN1GRU", grupro->men1gru},; { "MEN2GRU", grupro->men2gru},; { "DTALTERA", grupro->DTALTERA},; { "HRALTERA", grupro->HRALTERA},; { "PROXGRU", grupro->PROXGRU}} ) SqlExec("Commit") CATCH SqlExec("RollBack") END endif endif select grupro skip nreplicacao++ if cmsg_andamento != "Nivelando grupo dos produtos ida" cmsg_andamento := "Nivelando grupo dos produtos ida" omsg_andamento:refresh() ctime2 := time() otime2:refresh() endif enddo close all // nivelamento cadastro de grupo volta sqlsetconnection(nConn1) cPesq_Sql:= "SELECT * FROM grupro WHERE grupro.DTALTERA >="+STR_SQL ( ddtinicio )+" order by grupro.CODGRU" use grupro as cPesq_Sql alias grupro new via 'mysql' sqlsetconnection(nConn2) do while !eof() .and. !lsair fecha("peslocal") xsql:= "SELECT * FROM grupro where grupro.CODGRU= '"+(grupro->codgru)+"'" use grupro as xsql alias peslocal new via 'mysql' go top if eof() TRY SqlExec("Start Transaction") INCLUIX( "grupro", "grupro", { { "CODGRU" , grupro->codgru }, ; { "DESGRU" , grupro->desgru }, ; { "MARCOM" , grupro->marcom }, ; { "PERLUC" , grupro->perluc }, ; { "DEPART" , grupro->depart }, ; { "MEN1GRU", grupro->men1gru},; { "MEN2GRU", grupro->men2gru},; { "DTALTERA", grupro->DTALTERA},; { "HRALTERA", grupro->HRALTERA},; { "PROXGRU", grupro->PROXGRU}} ) SqlExec("Commit") CATCH SqlExec("RollBack") END else if ( peslocal->DTALTERA < ddtinicio ) .or. ( peslocal->DTALTERA = ddtinicio .and. peslocal->HRALTERA < grupro->HRALTERA ) TRY SqlExec("Start Transaction") ALTERAX( "grupro", "CODGRU='"+grupro->codgru+"'", { { "DESGRU" , grupro->desgru }, ; { "MARCOM" , grupro->marcom }, ; { "PERLUC" , grupro->perluc }, ; { "DEPART" , grupro->depart }, ; { "MEN1GRU", grupro->men1gru},; { "MEN2GRU", grupro->men2gru},; { "DTALTERA", grupro->DTALTERA},; { "HRALTERA", grupro->HRALTERA},; { "PROXGRU", grupro->PROXGRU}} ) SqlExec("Commit") CATCH SqlExec("RollBack") END endif endif select grupro skip nreplicacao++ if cmsg_andamento != "Nivelando grupo dos produtos volta" cmsg_andamento := "Nivelando grupo dos produtos volta" omsg_andamento:refresh() ctime2 := time() otime2:refresh() endif enddo close all return .t. // -------------------------------------------------------------------------- // Funcionamento semelhante para rede local ou remoto, é só criar duas conecções. Daniel Segura
  4. Olá Everton, Para fazer a sua própria instalação com o MySql, voce faz o download da versão que voce usa mas sem o instalador e apenas o arquivo ZIP, ai voce coloca (descompacta ele) o mysql onde quiser e vai de boa. Quando for gerar o instalador não esquecer de incluir a pasta onde voce descompactou o mysql, pode ser tipo c:\seusistema\mysql Após de instalado voce executa o c:\seusistema\mysql\mysqld.exe Daniel Segura
  5. Caro João, Hoje não tenho mais a cópia que tinha a algum tempo atrás, motivo este que estou a procura. Uma empresa de Sorocaba me enviou junto com os seus fontes para fazer uma manutenção no sistema deles. Um sistema muito bem escrito, visual bonito sem ser cansativo, um cartão de visita para o fivewin. Este manual era tipo um help do fivewin mas com detalhes de como programar, como criar variaveis, parâmetros e afins, e este manual não foi desenvolvido por eles. Se algum Amigo do forum tiver vai ajudar muito. Caso não seja possível deixar em dicas envie por e-mail: daniel_segura@ig.com.br Daniel Segura
  6. Olá Pessoal, Após apresentar um código em fivewin para amigos de trabalho (programadores em c#) ficaram interessados em conhecer o fivewin para fazer adaptações num sistema legado. Eles não tinham conhecimento da ferramenta e que é possível consumir facilmente um webservice. Se alguém tiver um manual de boas prática para fivewin e disponibilizar ficarei grato. Daniel Segura.
  7. Boa Tarde João, É só baixar o arquivo codejock.commandbars.v13.0.0.demo.ocx copie ele na pasta do samples e teste. Daniel.
  8. Olá jaspionjones, Além de colocar o oDialog:lTransparent := .T. que o amigo Theotokos indicou coloque também o objeto say como transparente Daniel Segura
  9. Ola Kapiaba, Eu uso a bastante tempo conforme exemplo do site http://bielsys.blogspot.com.br/ , e funciona muito bem. Voce deve enviar o arquivo actver.exe junto aos demais executaveis de seu sistema. Daniel Segura
  10. Boa função, Obrigado por compartilhar. Kapiada, a pergunta não foi para mim mas ai vai quando ele chama a funcao pega_nam_xml() ele abre uma dialog com a função cGetFile para que o usuario escolha o arquivo xml function pega_nam_xml() // Entrada de nota fiscal eletronica.................................. gcFile := cGetFile( "XML (*.xml)| *.xml|","Por favor localize o arquivo no formato XML.", 4 ) Daniel Segura
  11. Desde o inicio era isto que eu estava tentando lhe dizer. Parabéns, pena que voce não viu o link que enviei na primeira resposta, teria economizado 2 dias.
  12. Então amigo, pelo phpmyadmin esta conectando porque esta local, ou melhor, mesmo que voce esteja no japão o php roda local em seu servidor, o apache/php/... esta rodando LOCAL , mas quando voce tenta conectar por fora ele recusa. faz o seguinte, se não der certo voce volta o que estava. edite o arquivo my.cnf e comente a linha bind-address = 127.0.0.1 que está dizendo para seu servidor permitir que só o phpmyadmin funcione. no phpmysql inclua um novo usuário e no campo servidor coloque o caracter % restart o serviço e teste este procedimento deve ser feito em todos os servidores que voce instalar mysql para acessar com o seu sistema seja sqlrdd/sqllib ou outra lib qualquer. Boa sorte, se funcionar conte para nós e se não funcionar reinstale o mysql e execute estes passos acima confira se tem firewall, se tiver libere a porta 3306 que vai de boa. Daniel Segura
  13. Ola Márcio. Verifique o que diz neste link http://www.vivaolinux.com.br/dica/Acesso-ao-servidor-MySQL caso não de certo outra opção é voce conferir como está o cadastro do usuário. Daniel Segura ciacpd@hotmail.com
  14. Caro Luiz, se desejar envie a estrutura dos arquivos usados, (avenda/acliente) e o que voce quer ver que crio um select para voce ter como base. não esqueça, a tabela deve ter indices para facilitar a pesquisa. Daniel Segura ciacpd@hotmail.com
  15. Olá Pessoal, Vou colocar um exemplo de como eu faço com a SQLLIB. #include "\sqllib\include\sqllib.ch" #include "\comp\xharbour12\include\FiveWin.ch" #include "dbtnBMP.ch" #include "\comp\xharbour12\include\Report.ch" #translate TRUE => .T. #translate FALSE => .F. #Define COR_VERDE nRGB( 190, 215, 190 ) #Define COR_CINZA nRGB( 230, 230, 230 ) #Define COR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra #Define COR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo static L_F_selprg static lEnd := .F. REQUEST DBFCDX REQUEST SQLLIB REQUEST MySQL //-------------------------------------------------------------------------// function repara_tabelas(inicio) Local string_receber, string_pagar, string_caixa ,; string_cademp, string_paramet, ; string_venda, string_venit, ; string_orcamento, string_orcait, ; string_preven, string_previt Local string_dbStruct, string_insert, string_select private lforca_tudo if MsgYesNo("Deseja recriar todas as tabelas?" ,"Atenção") lforca_tudo := .t. else lforca_tudo := .f. endif SqlExec("Start Transaction") // [mensagem para o usuário] [backup] [tabela] [função com estrutura da tabela] repara_tabelas_item( "de configuração da argox" , "argoxbkp" , "argox" , "var_string_argox()" , inicio ) repara_tabelas_item( "de borderôs" , "arqbrbkp" , "arqbr" , "var_string_arqbr()" , inicio ) cria_procedure() cria_view() cria_trigger() cursorarrow() if inicio # 1 Mensagem("") endif msginfo("Operação realizada com sucesso.","Atenção.") SqlExec("Commit") if xcodrelato == "32412686" .and. inicio # 1 DEFINE TIMER oTime_Db INTERVAL 90000 ACTION Ver_Coneccao() OF oWnd ACTIVATE TIMER oTime_Db endif Return nil // -------------------------------------------------------------------------- // function repara_tabelas_item( pmsg , pnomtabbkp , pnomtab , pstringtab , inicio ) if inicio # 1 SysRefresh() set message of oWnd to "Manutencao na tabela " + alltrim(pmsg) + " da base de dados..."; CLOCK DATE KEYBOARD Color COR_VERMELHO Font oFntMess 2007 SysRefresh() endif tabelas := SQLArray('SHOW TABLES') if ASCAN( tabelas , {|X|X[1] = lower(alltrim(pnomtab)) }) # 0 ltabela_exist :=.t. else ltabela_exist :=.f. endif if ltabela_exist ************* // Inicio ************* TRY SqlExec("Start Transaction") SQLLIB_ExecSql(nil,"drop table IF EXISTS temporaria" ) SQLLIB_ExecSql(nil,"CREATE TABLE `temporaria` " + &pstringtab ) SqlExec("Commit") CATCH SqlExec("RollBack") quit END cPesq_Sql_Tmp:= "SELECT * FROM temporaria where temporaria.sql_rowid > 999999999" use temporaria as cPesq_Sql_Tmp alias temporaria new via 'mysql' string_dbStruct_tmp := dbStruct() select temporaria close cPesq_Sql_New:= "SELECT * FROM " + lower(alltrim(pnomtab)) + " where " + lower(alltrim(pnomtab)) + ".sql_rowid > 999999999" use &pnomtab as cPesq_Sql_New alias &pnomtab new via 'mysql' string_dbStruct_New := dbStruct() select &pnomtab close if ! lforca_tudo if len(string_dbStruct_tmp) = len(string_dbStruct_New) ini_string := 1 tot_string := len(string_dbStruct_tmp) totalcampos := 0 sysrefresh() lNao_Muda := .t. sysrefresh() for ini_string = 1 to tot_string if (string_dbStruct_tmp[ini_string][1]) # (string_dbStruct_New[ini_string][1]) .or. ; (string_dbStruct_tmp[ini_string][2]) # (string_dbStruct_New[ini_string][2]) .or. ; (string_dbStruct_tmp[ini_string][3]) # (string_dbStruct_New[ini_string][3]) .or. ; (string_dbStruct_tmp[ini_string][4]) # (string_dbStruct_New[ini_string][4]) lNao_Muda := .f. endif next if lNao_Muda return .t. endif endif endif sysrefresh() ************* // Final ************* SQLLIB_ExecSql(nil,"drop table IF EXISTS " + lower(alltrim(pnomtabbkp)) ) TRY SqlExec("Start Transaction") sql_string := " RENAME TABLE " + lower(alltrim(pnomtab)) + " TO " + lower(alltrim(pnomtabbkp)) + " ; " SqlExecute( sql_string ) SqlExec("Commit") CATCH SqlExec("RollBack") END endif TRY SqlExec("Start Transaction") SQLLIB_ExecSql(nil,"CREATE TABLE `" + lower(alltrim(pnomtab)) + "` " + &pstringtab ) SqlExec("Commit") CATCH SqlExec("RollBack") END if ltabela_exist cPesq_Sql:= "SELECT * FROM " + lower(alltrim(pnomtabbkp)) + " where " + lower(alltrim(pnomtabbkp)) + ".sql_rowid > 999999999" use &pnomtabbkp as cPesq_Sql alias &pnomtabbkp new via 'mysql' string_dbStruct := dbStruct() select &pnomtabbkp close cPesq_Sql_New:= "SELECT * FROM " + lower(alltrim(pnomtab)) + " where " + lower(alltrim(pnomtab)) + ".sql_rowid > 999999999" use &pnomtab as cPesq_Sql_New alias &pnomtab new via 'mysql' string_dbStruct_New := dbStruct() select &pnomtab close string_insert := "INSERT INTO " + lower(alltrim(pnomtab)) + " ( " string_select := " (SELECT " ini_string := 1 tot_string := len(string_dbStruct) totalcampos := 0 sysrefresh() for ini_string = 1 to tot_string if upper(string_dbStruct[ini_string][1]) # "SQL_ROWID" .and. ; upper(string_dbStruct[ini_string][1]) # "NUMROL" .and. ; upper(string_dbStruct[ini_string][1]) # "CORROL" .and. ; upper(string_dbStruct[ini_string][1]) # "CORROP" if ASCAN( string_dbStruct_New , {|X|X[1] = upper(string_dbStruct[ini_string][1]) }) # 0 if totalcampos > 0 string_insert += "," string_select += "," endif string_insert += " " + string_dbStruct[ini_string][1] string_select += " " + lower(alltrim(pnomtabbkp)) + "." + string_dbStruct[ini_string][1] totalcampos += 1 endif endif next string_insert += " )" string_select += " from " + lower(alltrim(pnomtabbkp)) + " )" cmdSQL:= string_insert + string_select TRY SqlExec("Start Transaction") SQL EXECUTE ( cmdSQL ) SqlExec("Commit") CATCH SqlExec("RollBack") END endif MsgBeep() Return nil // -------------------------------------------------------------------------- // function mata_tab_bkp() // verificar ocorrencias de erros antes de usar esta função. CursorWait() SqlExec("Start Transaction") SQLLIB_ExecSql(nil,"drop table IF EXISTS receberbkp" ) SQLLIB_ExecSql(nil,"drop table IF EXISTS movctbbkp" ) SqlExec("Commit") CursorArrow() Return nil // -------------------------------------------------------------------------- // Function var_string_argox() return "(`COMAND_D` decimal(2,0) default '0', "+; "`COMAND_RX` decimal(2,0) default '0', "+; "`COMAND_RY` decimal(2,0) default '0', "+; "`COLUNASPA` decimal(4,1) default '0.0', "+; "`COLUNASPB` decimal(4,1) default '0.0', "+; "`HRALTERA` char(8) default NULL, "+; "`DTALTERA` date default NULL, "+; "`DIAHORALOCAL` char(20) default NULL, "+; "`sql_rowid` bigint(10) NOT NULL auto_increment, "+; "`sql_deleted` enum('F','T') NOT NULL, "+; "PRIMARY KEY (`sql_rowid`), "+; "KEY `DTALTERA` (`DTALTERA`) "+; ") ENGINE=InnoDB DEFAULT CHARSET=latin1; " // -------------------------------------------------------------------------- // Function var_string_NOMEDATABELA() return "(`COMAND_D` decimal(2,0) default '0', "+; "`COMAND_RX` decimal(2,0) default '0', "+; "`COMAND_RY` decimal(2,0) default '0', "+; "`COLUNASPA` decimal(4,1) default '0.0', "+; "`COLUNASPB` decimal(4,1) default '0.0', "+; "`HRALTERA` char(8) default NULL, "+; "`DTALTERA` date default NULL, "+; "`DIAHORALOCAL` char(20) default NULL, "+; "`sql_rowid` bigint(10) NOT NULL auto_increment, "+; "`sql_deleted` enum('F','T') NOT NULL, "+; "PRIMARY KEY (`sql_rowid`), "+; "KEY `DTALTERA` (`DTALTERA`) "+; ") ENGINE=InnoDB DEFAULT CHARSET=latin1; " // -------------------------------------------------------------------------- // Passei a colocar a estrutura no código depois de ter problema numa empresa onde o usuário estudante sabotava tudo. Espero que seja útil. Daniel Segura
  16. Evertonlb, a TDolphin é free e voce pode baixar do site http://tdolphin.blogspot.com.br/ lá voce encontra exemplos de uso também. Daniel Segura
  17. Vagner, é a sua opção, apenas montei um exemplo com o teste que eu fiz incluindo a sua dica para que fique mais fácil para quem vier depois. A intenção é ajudar. Quando o nosso amigo falou que não estava excluindo inclui sua dica para ver se havia algum possível erro mesmo sabendo que voce é mestre no assunto. Felicidades Vagner. Daniel Segura
  18. Olá Pessoal, Teria algum exemplo ou dica para resolver a parte do manual que diz, "precisa ser compactado em formato zip e depois convertido em base64" ? Agradeço toda ajuda, sobre SNGPC. Daniel Segura daniel_segura@ig.com.br
  19. Olá Ico, Verifique "SET DELETED ON" Abaixo um teste com um pouco de cada dica. #include "FiveWin.ch" static oWnd, oWndEdit, oItem, ABABA, ; aCoors, oFont, oMenu, oMenuitem static aColors, aFonts static nColors, nFonts //----------------------------------------------------------------------------// function Main() Local i:=1 LOCAL bBlock :={|| IF( MSGYESNO('Deseja excluir os dados ?','ATENÇÃO' ) , ( Clientes->(RLOCK()),Clientes->(DBDELETE()) ) , .T. ) } LOCAL bBlock2:={|| IF( MSGYESNO('Deseja excluir os dados ?','ATENÇÃO') , Clientes->(DbEval({||(Clientes->(RLock() ), Clientes->(DbDelete()), Clientes->(DbUnlock()) )})) , .T. ) } SET DELETED ON aColors := Array( 5 ) aFonts := Array( 5 ) DEFINE FONT aFonts[ 1 ] NAME "Arial" SIZE 0, 24 BOLD DEFINE FONT aFonts[ 2 ] NAME "Ms Sans Serif" SIZE 0, 8 BOLD DEFINE FONT aFonts[ 3 ] NAME "Ms Serif" SIZE 0, 12 BOLD DEFINE FONT aFonts[ 4 ] NAME "Arial" SIZE 0, 12 ITALIC DEFINE FONT aFonts[ 5 ] NAME "Ms Sans Serif" SIZE 0, 8 aColors[ 1 ] = "w+*/r" aColors[ 2 ] = "r+/w+*" aColors[ 3 ] = "g+/w+*" aColors[ 4 ] = "w+*/b" aColors[ 5 ] = "b+/w" nColors := 1 nFonts := 1 SET _3DLOOK ON if ! File( "clientes.dbf" ) DbCreate( "Clientes.dbf", { { "Nombre", "C", 40, 0 },; { "Direccion", "C", 50, 0 },; { "Telefono", "C", 12, 0 },; { "Edad", "N", 2, 0 },; { "Productos", "C", 10, 0 },; { "Nivel", "N", 2, 0 } } ) endif USE Clientes IF MSGYESNO('Deseja incluir dados para teste ?','ATENÇÃO') for i:=1 to 5 APPEND BLANK Clientes->Nombre := str(i,1) Clientes->Direccion := str(i,1) Clientes->Productos := str(i,1) Clientes->Nivel := i Clientes->Telefono := str(i,1) Clientes->Edad := i next endif go top browse() DEFINE WINDOW oWnd FROM 1, 1 TO 20, 70; TITLE "FiveWin Teste" MDI SET MESSAGE OF oWnd TO "FiveWin" ; FONT oFont DEFINE MSGITEM ABABA OF oWnd:oMsgBar PROMPT " Dados" ; SIZE 150 BITMAP "..\BITMAPS\EXIT.BMP" ; ACTION EVAL(bBlock) ; ToolTip "Dados" Center //ACTION IF( MsgYesNo("Deseja excluir os dados ?", "..::Dados"), exclui_dados() , MsgInfo("Não Deleta") ) ; //ToolTip "Dados" Center ACTIVATE WINDOW oWnd MAXIMIZED AEval( aFonts, { | oFont | oFont:End() } ) return nil //----------------------------------------------------------------------------// static function exclui_dados() Clientes->(RLock()) while ! Clientes->(eof()) Clientes->(DbDelete()) Clientes->(DbSkip()) end Clientes->(DbUnlock()) Clientes->(DbCommit()) return nil Daniel Segura
  20. Testado. DEFINE MSGITEM ABABA OF oWndEdit:oMsgBar PROMPT " Dados" ; SIZE 150 BITMAP "..\BITMAPS\EXIT.BMP" ; ACTION If( MsgYesNo("Deseja excluir os dados ?", "..::Dados"), msginfo("Acesso->(dbdelete()),.t.","Atenção") , ) ; ToolTip "Dados" Center Troque a função msginfo por sua rotina. Daniel Segura
  21. Evaldo, Boa Noite. Abaixo tem um endereço com comandos e funções da FiveWeb http://wiki.fivetechsoft.com/doku.php?id=fiveweb_english#fiveweb_classes Daniel Segura
  22. Judson, Poderia enviar para mim também? daniel_segura@ig.com.br ciacpd@hotmail.com Daniel Segura
  23. Olá Crisvan, Em rede local é só colocar um campo com o status da venda e no listbox vc apresentar um bitmap com cor chamativa. Na tela de pedido de um cliente fiz desta forma e ainda com a opção de filtrar os dados por status. Colocando no tray uma rotina para aparecer uma mensagem a cada nova venda que deve ser liberada voce fecha pelo menos no local. Se voce usar um cgi seja qual for (By Lailton / ou Vailton) vc consegue liberar via web também, só alterando o status da venda. Daniel Segura
  24. Erciley Junior, Muito boa sua abordagem sobre o assunto, como voce pode ver o log de erro foi de 12/2011, um caso que ocorreu em um cliente. Não existe sistema perfeito a fim de que nunca de um ou outro problema, mesmo que geralmente seja gerado por algo externo a ele. 1 - Não uso comandos DBF a muito tempo 2 - InnoDB é usado para controle de transações e foreign keys para maior consistência nos dados. 3 - Procuro utilizar todos os recursos disponíveis do banco. 4 - Se voce usa MyISAM provavelmente é para lista eletrônica 5 - Sobre o programa CRETINO deixa pra lá, isto não ocorre na CIACPD, desde 1992 desenvolvendo sistemas de qualidade, 5 idiomas e usuários por todos os continentes. Geraldo, caso precisar de ajuda com o mysql é só enviar email: ciacpd@hotmail.com ciacpd@ciacpd.com.br daniel_segura@ig.com.br Daniel Segura
  25. Problemas que passei que recebi este erro. 1o) Num ponto do sistema havia um update numa tabela sem commit, quando o sistema executava esta function dava este problema, enquanto o terminal que realizou o update não criava outra transação com o banco todos as máquinas recebia esta mensagem de erro. 2o) Após atualização do Windows o MySQL passou a ficar lento e o serviço gerava o abençoado erro "executuo uma operação ilegal e será fechado" , só resolveu formatando a máquina. 3o) Servidor UBUNTU, troquei a versão da SQLLIB e todas as funções onde era insert com select parou de funcionar e a saida foi refazer com um while !eof(), testei a versão antiga com as DLLs da nova versão do mysql e percebi que o erro era nelas. abaixo uma amostra do SQLLOG.TXT 14/12/2011 09:36:09 insert into preven (CODPVEN, NRCOMANDO, CODCLI, RUAENT, BAIENT, CIDENT, CEPENT, ESTENT, VLTOVE, VLICMS, CODOPE, PORDES, DTMOV, CODFUN, CONT, PLACA, MAMO, OBS1, OBS2, PONTREF1, PONTREF2, NUMLOSANG, NOMCLI, ENT, NOTA, NFE, TPNOTA, SERIENOTA, TIPPAG, IMPRESSO, VLSUBTOT, VLFRETE, VLDESFIN, VLPERDES, VLREADES, VLENT, VLAVISTA, VLBOL, VLCOMPRA, NUMPAR, VLPAR, CTUS, VL_AVISTA, CHEQUE, NUMPEC, ENTREGA, STATUS, DTENT, DTENTREGA, INF1, INF2, CAIXA, BX_STOQ, NUMFORM, NUMFORM2, CCONSTRU, NCONSTRU, FONCLI, NUMENT, OBRA, HORA, EMPLOJ, PERPRE, PARCELADO, NUMTABELA, DTPRIVEN, NUMDIA, DATAHORA, PLACAAST, MARCAAST, MODELAST, ANOAST, KILOMAST, CORAST, DATATU, CODEMP) VALUES ( 0, 0, '000000', '', '', '', '', '', 0.00, 0, '001', 0, '2011-12-14', '000014', 0, '', '', '', '', '', '', '', 'Consumidor', '', 0, 0, '', '', 0, '0', 0.00, 0, 0, 0, 0, 0, 'N', 'N', 0, 1, 0.00, '', '', 'N', 0, '', 1, NULL, '2011-12-14', '', '', '999', 0, 0, 0, '', '', '', '', '', '09:35:13', '', 1.000000, 0, '0', '2011-12-14', 30, '20111214093518', '', '', '', '', 0, '', '2011-12-14', '001') 14/12/2011 09:36:09 SQLLIB/1000: MySQL RDD: Lock wait timeout exceeded; try restarting transaction id=red>14/12/2011 12:19:26 14/12/2011 13:37:31 SQLLIB/1000: MySQL RDD: Can't connect to MySQL server on '192.168.0.3' (10061) id=code> id=code>Como voce pode ver acima refere-se ao 2o. caso onde após o erro, ele derruba o serviço e não permite mais coneção ao banco. Só reiniciando para funcionar. Quando voce resolver o seu problema nos avise para que possamos documentar e resolver os nossos mais rapido também. Daniel Segura
×
×
  • Create New...