Jump to content
Fivewin Brasil

CIACPD

Membros
  • Posts

    377
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by CIACPD

  1. Falando em salários Distribuidores microsiga pagam se 3000 a 5800 para programadores fazerem customizações. Daniel
  2. Olá Jmsilva, Procure estudar trigger, procedures, view e outras coisas que o mysql tem, aí voce usa o SqlExec() com a maior facilidade. Não custa nada, e seus sistemas podem dar aos teus clientes o que os grandes não consegue ou não querem. Imagine, a maior do brasil só atualiza o estoque das redes de lojas no final do dia. (fatura milhoes...) Enquanto com a SQLLIB pode ser simultaneo o negócio. Daniel Segura
  3. Olá Zeca, Tente reinstalar a mesma versão, para não correr o risco de perder as tabelas, mas antes: 1-> execute o config do mysql. 2->Tente executar o arquivo C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqld-nt.EXE 3->O usuário que vc cadastrou como está ??? Obs: Um cliente instalou o antivirus da microsoft e já era o mysql. ele trava a porta 3306. Com SQLLIB e MYSQL não tenho problema. Nunca esquecer que estando o Servidor configurado quanto menos mexer melhor é. Daniel Segura
  4. Pessoal, Porque não usar a rotina que é usada com o clipper 5.2 e FW2.0? Uso ela desde a anos e nunca tive problemas na geração de PDFs. Baixei do www.pctoledo.com.br Daniel Segura
  5. Olá Pessoal, De São Paulo para Ibiuna a empresa é Danubio Azul, (1Hora) De Sorocaba para Ibiuna via Piedade a empresa é Vila Elvio (2Horas) Para quem sair de Sorocaba o melhor é ir para São Roque e depois pegar a estrada Quintino de Lima Daniel Segura
  6. Caro Amigo, Vc esta linkando a sqllib junto? Parece ser a falta da lib, e ela deve vir antes da lib do fivewin. Daniel Segura
  7. Sim Anderson, mas não estou conseguindo chamar as funções a partir do Fivewin. Obrigado. Daniel Segura
  8. Não é loucura é realidade. A 1 ano e meio vi um programador fazer isto, se alguém do forum ja fez ou sabe de uma dica por favor poderia nos passar como fazer? Na época ele usava o acbr e outros componentes em delphi juntava com o sistema dele em xharbour. O que eu quero é usar o acbr e demais componentes deles. A linha de comando era: dcc32 -jphn TestUnit.pas ///////////////////////////////////////////////////////////////////////////// BCB comes with dcc32.exe (the Delphi compiler) and uses it to compile Pascal packages when necessary. To do this it uses the dcc32 -JPHN switches (-J = generate OBJ, -P = C++, -H = HPP Header file, -N = namespace). You can use your Delphi dcc32 with these switches but that will not give you a package. Amongst other things, ilink32 that comes with BCB (not Delphi) uses the -Gl switch to generate a static package (.LIB). The output of complete BCB build of a package containing Pascal source includes .OBJ, .HPP, .BPI, .BPL, .LIB. The .BPL is a special .DLL and the .BPI is the equivalent of an import library to the .BPL. /////////////////////////////////////////////////////////////////////////////
  9. Não é loucura é realidade. A 1 ano e meio vi um programador fazer isto, se alguém do forum ja fez ou sabe de uma dica por favor poderia nos passar como fazer? Na época ele usava o acbr e outros componentes em delphi juntava com o sistema dele em xharbour. O que eu quero é usar o acbr e demais componentes deles. A linha de comando era: dcc32 -jphn TestUnit.pas ///////////////////////////////////////////////////////////////////////////// BCB comes with dcc32.exe (the Delphi compiler) and uses it to compile Pascal packages when necessary. To do this it uses the dcc32 -JPHN switches (-J = generate OBJ, -P = C++, -H = HPP Header file, -N = namespace). You can use your Delphi dcc32 with these switches but that will not give you a package. Amongst other things, ilink32 that comes with BCB (not Delphi) uses the -Gl switch to generate a static package (.LIB). The output of complete BCB build of a package containing Pascal source includes .OBJ, .HPP, .BPI, .BPL, .LIB. The .BPL is a special .DLL and the .BPI is the equivalent of an import library to the .BPL. /////////////////////////////////////////////////////////////////////////////
  10. Pessoal, um FELIZ NATAL e que 2010 todos possam ganhar muito DINHEIRO e tenham muita SAÚDE e PAZ. Agradeço a todos os amigos deste forum pelas respostas pois estas que me ajudaram a continuar meu trabalho. Daniel Segura
  11. Abaixo está o link de onde eu baixei a CDOSYS http://www.box.net/shared/o7oxcfqlsm Junto ao fonte esta um exemplo funcional onde poderá digitar os parametros e testar se esta correto ou não. Daniel Segura
  12. Usuário não encontrado. tente só com o nome macedo.marcos e senha sem @... Daniel Segura
  13. Marcos para resolver o seu problema de vez: //--------------------------------------------------------------------------------------------------------------------// Function fEmail() Local oDlg, aCtl[ 22 ], oFont Local cMailServer := PadR( "smtp.gmail.com", 60 ), ; // servidor de correo cFrom := PadR( "remitente@gmail.com", 60 ), ; // remitente cTo := PadR( "destinatarios@hotmail.com", 180 ), ; // destinatario (uno o varios separados con comas) cBCC := PadR( "destinatarios@hotmail.com", 180 ), ; // copias ocultas a (uno o varios separados con comas) cAttach := PadR( "c:\fwh\bitmaps\fivewin.bmp", 180 ), ;// archivo anexo (uno o varios separados con comas) cSubject := Space( 60 ), ; // asunto cBody := Space( 500 ), ; // cuerpo del mensaje nPort := 465, ; // puerto usado por el servidor de correo cUser := Space( 60 ), ; // nombre de usuario para autenticación cPass := Space( 30 ) // contraseña para autenticación DEFINE FONT oFont NAME "Arial" SIZE 0, -16 DEFINE DIALOG oDlg FROM 0, 0 TO 455, 703 PIXEL ; COLORS CLR_BLUE, CLR_HBROWN ; TITLE "CDOSYS Collaboration Data Objects for Windows 2000" ; STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, WS_3DLOOK ) @ 10, 5 SAY aCtl[ 1 ] PROMPT "Servidor de Correo:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 10, 80 GET aCtl[ 2 ] VAR cMailServer OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 206, 11 PIXEL @ 10,294 SAY aCtl[ 3 ] PROMPT "Puerto:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 30, 11 PIXEL @ 10,320 GET aCtl[ 4 ] VAR nPort OF oDlg ; FONT oFont UPDATE PICTURE "@K ####" ; COLORS CLR_BLUE, CLR_WHITE SIZE 24, 11 PIXEL @ 24, 5 SAY aCtl[ 5 ] PROMPT "Remitente:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 24, 80 GET aCtl[ 6 ] VAR cFrom OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL @ 39, 5 SAY aCtl[ 7 ] PROMPT "Destinatario:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 39, 80 GET aCtl[ 8 ] VAR cTo OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL @ 54, 5 SAY aCtl[ 9 ] PROMPT "Copia para:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 54, 80 GET aCtl[ 10 ] VAR cBCC OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL @ 69, 5 SAY aCtl[ 11 ] PROMPT "Adjuntar:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 69, 80 GET aCtl[ 12 ] VAR cAttach OF oDlg PICTURE "@K" ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_WHITE SIZE 253, 11 PIXEL // ACTION fAddAttach( aCtl[ 12 ] ) ; // descomentar para FWH 8.12 o posterior @ 69,333 BUTTON "..." OF oDlg SIZE 10, 10 PIXEL ACTION fAddAttach( aCtl[ 12 ] ) @ 84, 5 SAY aCtl[ 13 ] PROMPT "Asunto:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL @ 84, 80 GET aCtl[ 14 ] VAR cSubject OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL @ 99, 5 SAY aCtl[ 15 ] PROMPT "Autenticación: Usuario:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 80, 11 PIXEL @ 99, 87 GET aCtl[ 16 ] VAR cUser OF oDlg ; FONT oFont UPDATE PICTURE "@K" ; COLORS CLR_BLUE, CLR_WHITE SIZE 118, 11 PIXEL @ 99,213 SAY aCtl[ 17 ] PROMPT "Contraseña:" OF oDlg ; FONT oFont UPDATE ; COLORS CLR_BLUE, CLR_HBROWN SIZE 44, 11 PIXEL @ 99,259 GET aCtl[ 18 ] VAR cPass OF oDlg PASSWORD ; FONT oFont UPDATE PICTURE "@K"; COLORS CLR_BLUE, CLR_WHITE SIZE 85, 11 PIXEL @118, 6 SAY aCtl[ 19 ] PROMPT "Cuerpo del mensaje" OF oDlg ; SIZE 100, 11 PIXEL ; FONT oFont COLORS CLR_BLUE, CLR_HBROWN @126, 10 GET aCtl[ 20 ] VAR cBody OF oDlg ; FONT oFont MULTILINE UPDATE ; COLORS CLR_BLUE, CLR_WHITE SIZE 330, 72 PIXEL @208,213 BUTTON aCtl[ 21 ] PROMPT "&Enviar" OF oDlg ; FONT oFont SIZE 53, 16 PIXEL ; ACTION fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort ) @208,292 BUTTON aCtl[ 22 ] PROMPT "&Salir" OF oDlg ; FONT oFont SIZE 53, 16 PIXEL ACTION oDlg:End() ACTIVATE DIALOG oDlg CENTERED ; VALID ( oFont:End(), .T. ) Return Nil //---------------------------------------------------------------------------------------------// Function fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort ) Local oCfg, oMsg, oError, nEle, cToken, ; aAttach := {}, ; lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ; nSendOpt := 2 // send using: 1 = pickup folder 2 = port Default nPort := 25, ; cSubject := "", ; cBody := "" If "GMAIL.COM" $ Upper( cMailServer ) .and. ( Empty( cUser ) .or. Empty( cPass ) ) MsgStop( "Com GMail são requeridos nome do usuario e senha", "Atenção" ) Return .f. EndIf CursorWait() nEle := 1 While ! Empty( cToken := StrToken( cAttach, nEle++, "," ) ) AAdd( aAttach, cToken ) EndDo Try oCfg := CreateObject( "CDO.Configuration" ) With Object oCfg:Fields :Item( cdoSMTPServer ):Value := Trim( cMailServer ) :Item( cdoSMTPServerPort ):Value := nPort :Item( cdoSendUsing ):Value := nSendOpt If lAuth :Item( cdoSMTPAuthenticate ):Value := 1 :Item( cdoSendUserName ):Value := Trim( cUser ) :Item( cdoSendPassword ):Value := Trim( cPass ) :Item( cdoSMTPUseSSL ):Value := 1 EndIf :Update() End With oMsg := CreateObject( "CDO.Message" ) With Object oMsg :Configuration := oCfg :From := Trim( cFrom ) :To := Trim( cTo ) :Subject := Trim( cSubject ) :TextBody := Trim( cBody ) For nEle := 1 To Len( aAttach ) :AddAttachment := AllTrim( aAttach[ nEle ] ) Next If ! Empty( cBCC ) :BCC := Trim( cBCC ) EndIf :Send() End With Catch oError CursorArrow() MsgStop( "Não foi possível enviar a mensagem" + CRLF + "Error: " + cValToChar( oError:GenCode) + CRLF + ; "SubC: " + cValToChar( oError:SubCode ) + CRLF + "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ; "SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Mensagem: " + oError:Description ) oCfg := Nil oMsg := Nil Return .f. End Try oCfg := Nil oMsg := Nil // SndPlaySound( GetWinDir() + "\media\Tada.wav", 0 ) CursorArrow() Return .t. //---------------------------------------------------------------------------------------------// Static Function fAddAttach( oGet ) Local cFile, ; cAttach := oGet:VarGet() cFile := cGetFile( "*.*", "Selecione o arquivo" ) If ! Empty( cFile ) cAttach := Lower( PadR( AllTrim( cAttach ) + If( ! Empty( cAttach ), ",", "" ) + AllTrim( cFile ), 180 ) ) EndIf oGet:cText( cAttach ) Return Nil id=code>id=code>ABAIXO O "CdoSys.ch" #ifndef _CDOSYS_CH #define _CDOSYS_CH #define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver" #define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport" #define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing" #define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory" #define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" #define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername" #define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword" #define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl" #define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" #endif id=code>id=code>exemplo de como eu utilizo: function envia_fale_cono( cAssunto, cMensagem ) Local cMailServer := PadR( "smtp.ig.com.br", 60 ), ; // servidor de correo cFrom := PadR( "daniel_segura@ig.com.br", 60 ), ; // remitente cTo := PadR( "ciacpd@hotmail.com", 180 ), ; // destinatario (uno o varios separados con comas) cBCC := PadR( "daniel_segura@ig.com.br", 180 ), ; // copias ocultas a (uno o varios separados con comas) cAttach := "",; // PadR( "c:\fwh\bitmaps\fivewin.bmp", 180 ), ; // archivo anexo (uno o varios separados con comas) cSubject := "Empresa: "+xNome_Empre + " - " + cAssunto, ; // asunto cBody := cMensagem, ; // Space( 500 ), ; // cuerpo del mensaje nPort := 465, ; // puerto usado por el servidor de correo cUser := "daniel_segura@ig.com.br", ; // Space( 60 ), ; // nombre de usuario para autenticación cPass := "senhasenha" // Space( 30 ) // contraseña para autenticación if fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort ) msginfo("E-mail enviado com sucesso."+CRLF+CRLF+"Entraremos em contato em breve.","E-Mail Fale Conosco.") Else msginfo("E-mail não enviado, verifique sua conecção com a internet.","E-Mail Fale Conosco.") endif return .t. id=code>id=code>Daniel Segura
  14. Olá JHILBERT O Firebird é lento em conecções via Web, para trabalhar com multiplas filiais somente com replicações. O MySql ja é bem mais rápido. Daniel Segura
  15. Olá Luis, os comandos a seguir vc usa em linha de comando do DOS O comando mysqldump vc usa para fazer o backup e para restaurar o comando mysql exemplo do comando mysqldump: mysqldump -u root --password=ASENHA -c -t -e --databases baterias > c:\teste que nada mais é o que vc fez. OK? exemplo do comando mysql: mysql -hlocalhost -uroot -pSENHA baterias < c:\teste.sql Na funcao que passei para vc por email ela cria um arquivo .BAT para fazer isto e o erro que esta dando é porque o ip ou o "localhost" esta fora de aspas verifique. Olha eu apanhei uma semana para fazer a SQLLIB funcionar e era minha ansiedade que fazia deixar de observar os pequenos detalhes. Hoje se falarem em DBF eu corro. Daniel Segura
  16. Luiz, verifique em seu email ico.corumba@gmail.com que lhe enviei uma copia da rotina de backup e restore que uso. Daniel Segura qualquer coisa pode me mandar email
  17. Para restaurar backup, mysql -h192.168.0.1 -uroot -pSENHA baterias < c:\teste.sql onde -h é o ip do servidor Daniel Segura ciacpd@terra.com.br
  18. Reneu, Mostra a linha que voce define o listbox pode ter algo errado Daniel Segura ciacpd@terra.com.br
  19. Correto pessoal, O Kleyber tem razão Eu que peço desculpa Daniel Segura Editado por - ciacpd on 21/07/2009 13:03:21
  20. Vamos lá, Os triggers podem ser disparados quando vc for inserir ou deletar um registro no mysql/firebird/.... CREATE TRIGGER `venit_after_ins_tr` AFTER INSERT ON `venit` este triggers é disparado antes de inserir um novo registro na tabela venit (item de venda) CREATE TRIGGER `venit_before_ins_tr` BEFORE INSERT ON `venit` este triggers é disparado depois inserir um novo registro na tabela venit (item de venda) "new.CODPRO" é para usar o registro antes de ter inserido na tabela e "old.CODPRO" é o registro depois de inserido Para ganhar em velocidade vc deve deixar os calculos e funções para gerar codigos no banco e não no prg. Assim não importa a linguagem de programação, seja Five, php ou outros, sempre vai dar certo a codificação e totais. Daniel Segura ciacpd@terra.com.br
  21. Marcio, Procure usar triggers para dar o valor de subtotal, e acertar o seu estoque, pois assim nunca vai dar erro de qtd e valor. Abaixo está como eu uso: if TYPE('nReg') != "U" nReg++ ; oMtr:Set(nReg) endif TRY SQLLIB_ExecSql(nil,"Start Transaction") SQLLIB_ExecSql(nil,"CREATE TRIGGER `venit_after_ins_tr` AFTER INSERT ON `venit` "+; " FOR EACH ROW "+; "BEGIN "+; " update cadpro set QTDATU = QTDATU - new.QTDVEN WHERE cadpro.codpro = new.CODPRO; "+; " update cadpro set CONMEN = CONMEN + new.QTDVEN WHERE cadpro.codpro = new.CODPRO; "+; " update cadpro set ULTSAI = new.DTMOV WHERE cadpro.codpro = new.CODPRO; "+; " update gradepro set QTDATU = QTDATU - new.QTDVEN WHERE gradepro.codbar = new.GRAPRO; "+; " update venda set VLSUBTOT = VLSUBTOT + ( new.VALVEN * new.QTDVEN ), "+; " venda.VLTOVE = ( venda.VLSUBTOT - venda.VLREADES ) + "+; " ( venda.VLFRETE + venda.VLDESFIN ) "+; " WHERE venda.CODPVEN = new.CODPVEN and venda.CODEMP = new.CODEMP; "+; "END; ") SQLLIB_ExecSql(nil,"Commit") CATCH SQLLIB_ExecSql(nil,"RollBack") END if TYPE('nReg') != "U" nReg++ ; oMtr:Set(nReg) endif TRY SQLLIB_ExecSql(nil,"Start Transaction") SQLLIB_ExecSql(nil,"CREATE TRIGGER `venit_after_del_tr` AFTER DELETE ON `venit` "+; " FOR EACH ROW "+; "BEGIN "+; " update cadpro set QTDATU = QTDATU + old.QTDVEN WHERE codpro = old.CODPRO; "+; " update cadpro set CONMEN = CONMEN - old.QTDVEN WHERE codpro = old.CODPRO; "+; " update cadpro set ULTSAI = old.DTMOV WHERE codpro = old.CODPRO; "+; " update gradepro set QTDATU = QTDATU + old.QTDVEN WHERE codbar = old.GRAPRO; "+; " update venda set VLSUBTOT = VLSUBTOT - ( old.VALVEN * old.QTDVEN ), "+; " venda.VLTOVE = ( venda.VLSUBTOT - venda.VLREADES ) + "+; " ( venda.VLFRETE + venda.VLDESFIN ) "+; " WHERE venda.CODPVEN = old.CODPVEN and CODEMP = old.CODEMP;"+; "END;") SQLLIB_ExecSql(nil,"Commit") CATCH SQLLIB_ExecSql(nil,"RollBack") END id=code>id=code>Daniel Segura ciacpd@terra.com.br
  22. Olá bjbernal Fazendo como o cristiano indicou, imagine que o recurso ficou com o nome #8001. function main() private oIco DEFINE ICON oIco RESOURCE "#8001" DEFINE WINDOW oWnd FROM 0,0 TO (naltura), (nlargura) ; TITLE "teste" ; ICON oIco ; MENU BuildMenu() Daniel Segura ciacpd@terra.com.br
  23. É Fácil http://www.barcodenet.com.br/ escolha no lado esquerdo (ATUALIZAÇÕES (DOWNLOADS) ) Impressoras de Etiquetas Argox e logo voce acha manual e exemplos em portugues. Daniel Segura
  24. CIACPD

    Five e Linux

    Lailton o wine ira interpretar as DLL para voce, até o office 97 voce instala no linux com o wine. veja este link http://www.guiadohardware.net/tutoriais/dicas-wine/ '> http://www.guiadohardware.net/tutoriais/dicas-wine/ Daniel Segura ciacpd@terra.com.br
  25. Olá Marcelo, Seria para criar Dialogs Se for inclua DESIGN nos Gets Says... @ plcima,plesquerda SAY osay02 Var csay02 OF pObjTela DESIGN SIZE pcompri,paltura pixel picture "@K" FONT ofontgeral id=code>id=code>Daniel Segura ciacpd@terra.com.br
×
×
  • Create New...