Jump to content
Fivewin Brasil

sistem

Membros
  • Posts

    561
  • Joined

  • Last visited

  • Days Won

    25

Posts posted by sistem

  1. nao consigo entender com base nos seus update...  esse ID tem na tabela de provas e resposta?

    veja um exemplo de um update com base em resultado em outra tabela:

    UPDATE db1.comh SET comh.tip_comh = (SELECT forn.tip_forn FROM db0.forn WHERE forn.cod_forn = comh.for_comh) where comh.sr_recno != 0;
    pode ser que ajude, pois nao entendi o que o amigo quer

  2. quantas tabelas sao?

    2 ou 3 tabela?

    tipo vc tem:

    produtos e pedidos (2 tabelas)

    ou tem

    produtos, pedidos e itens do pedido (3 tabelas)?

     

    exemplo com 2 tabelas. produtos(prod) e itens do pedido(pedi

    DELETE FROM db1.prod, db1.pedi USING db1.prod, db1.pedi WHERE pedi.pro_pedi = prod.cod_prod and prod.cod_prod = "0001";

     

  3.  

    Marcio, o código do JMSILVA e o que eu peguei dele e criei uma função genérica, é impossível repetir... Como o João disse, poste o código que fez repetir...

     

     

     

    talvez ele tenha usado o primeiro código que postei, realmente estava repetindo... coloquei um código novo,,,,   vc tb poderá usar o código do JMSILVA que deve ta certo

  4. function test()
    local x, aVetor:=Array(10), cnum1:="", cnum2:=""
    
    for x=1 to 10
     aVetor[x] := Int(hb_Random(1, 15))
    
     if x>1
      do while VerSeTem(aVetor, x)
         aVetor[x] := Int(hb_Random(1, 15))
      enddo
     endif
    next
    
    for x=1 to 10
       cnum1 = cnum1 + alltrim(strzero(aVetor[x],2))+" "
    next
    
    aVetor := aSort(aVetor)
    
    for x=1 to 10
      cnum2 = cnum2 + alltrim(strzero(aVetor[x],2))+" "
    next
    
    ? cnum1+CRLF+cnum2
    
    return nil
    
    function VerSeTem(aVetor, x)
    local lexist:=.f., y
    
    for y=1 to x-1
     If aVetor[y] = aVetor[x]
       lexist:=.t.
     endif
    next
    return lexist
    

    será possível rapaz... que coisa difícil (detalhe total de 15  numeros e sorteando 10 pro teste ficar mais forte)

    ver ai

  5.  

    Pelo que entendi ele quer saber o numero de registros do banco de dados e não de uma unica tabela, se for isto desconheço, até dei uma procurada no google para ver se achava algo, mais sem sucesso.

     

     

    saber o numero de registro de um db, serio... isso existe?  poderia ser o numero de tabelas de um db  USE SEU_DB_AQUI; ......  select count(SHOW TABLES)

    existe sim olhai...... (fonte:  https://stackoverflow.com/questions/286039/get-record-counts-for-all-tables-in-mysql-database)

    exibir todos os registro de todas as tabelas de 1 db:

    SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "SEU DB AQUI";

    SELECT TABLE_NAME,SUM(TABLE_ROWS)  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = 'SEU DB AQUI' GROUP BY TABLE_NAME;

    exibir todos os registro de todas as tabelas de todos os dbs:

    SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES;

    SELECT TABLE_NAME,SUM(TABLE_ROWS)  FROM INFORMATION_SCHEMA.TABLES  GROUP BY TABLE_NAME;

    vai exibir outras tabelas que talvez vc não queira:

     

    dai faz assim:  ( aqui vc vai ver todos os campos para vc poder filtrar o que lhe vai servir)

    SELECT  * FROM INFORMATION_SCHEMA.TABLES GROUP BY TABLE_NAME;    

    provavelmente vc chegara a isto:

    SELECT  TABLE_TYPE, TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS, SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES where TABLE_TYPE = "BASE TABLE" and TABLE_SCHEMA != "mysql" and SUBSTRING(TABLE_NAME,1,3) != "SR_" GROUP BY TABLE_NAME;
         dai vc podera usar o SUM para pegar tudo em um unico numero
    SELECT SUM(TABLE_ROWS) as TOT_TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES where TABLE_TYPE = "BASE TABLE" and TABLE_SCHEMA != "mysql" and SUBSTRING(TABLE_NAME,1,3) != "SR_";

     

  6. sqlrdd

      cSelect := "select count(*) as nReg from clientes"
      DbUseArea(.t.,"SQLRDD", cSelect, "TempClie")
      ? "total clientes: "+str(TempClie->nReg)
      TempClie->(dbCloseArea())
    
    ou
    
      SR_GetConnection():exec("SET @n = 0;")
      cSelect := "SELECT @n := @n+1 AS nRegCorrente, CodCliente, NomeCliente FROM clientes"
      DbUseArea(.t.,"SQLRDD", cSelect, "TempClie")
      browse()
      TempClie->(DbGoBottom())
      ? TempClie->nRegCorrente
      TempClie->(dbCloseArea())
    

     

  7. Novidade no forum internacional, librería TWEB de domínio público (Carles Aubia) 

    http://forums.fivetechsupport.com/viewtopic.php?f=6&t=35444&sid=3a160cd258ae4845eb9f7f8d52b696cc

    ajuda/download
    http://itarraco.com/tweb.help
    forum
    http://itarraco.com/tweb.forum 

    vc vai precisar de um servidor php...  vc poderá instalar o XAMPP. a instalacao eh simples (next, next, finish) (consulte o link de ajuda/download logo acima) 

    um exemplo para iniciar e pegar gosto:

    <?php
    
    include ( 'config.php' );                  // arquivo de configuração,
    include( TWEB_PATH . "core.php" );         // incluir framework
    
    $oWeb = new TWeb('Test TWeb');             // Definimos un objeto $oWeb a partir da clase TWeb
    
      $oWeb->SetIcon( 'images/go.png' );       // adicionar um ícone
      $oWeb->SetBrush( 'images/stucco.gif' );  // adicionar um papel de parede
    
    $oWeb->Activate();                         // Ativar objeto oWeb
    
      $oWnd = new TWindow( 'main',  50, 50, '80%', '80%', CLR_BLUE );  // adicionando a classe TWindow()
       $oWnd->SetCss( 'border-radius: 8px 8px 0px 0px;' );            // uma borda arredondada para a janela
    
       $oPanel = new TPanel( $oWnd, 'main_B', 25, 0, '100%', '100%', CLR_HGRAY );
       $oPanel->lBorder = true;
       $oPanel->SetBottom( '100%' );
    
       $oPanel_C = new TPanel( $oPanel, 'main_C',  50, 20, 300, 100, CLR_WHITE );
       $oPanel_C->lBorder = true;
       $oPanel_C->SetShadow(5);
    
       $oPanel_D = new TPanel( $oPanel, 'main_D', 200, 20, null, null, CLR_GRAY );
       $oPanel_D->lBorder = true;
       $oPanel_D->SetBottom( 20 );
       $oPanel_D->SetRight( 20 );
    
       $oBtn = new TButton( $oWnd, 'mybutton' , 100, 100, 'Hello world !', 'Hello()' );
    
    
      $oWnd->Activate();                       // Ativar o objeto TWindow
    
    $oWeb->End();                              // Finalizamos e terminamos o objeto
    
    // resumo
    // iniciamos e ativamos nossa web.
    
    // Criamos um janela principal com a classe TWindow. $oWnd = new TWindow( 'main',  50, 50, '80%', '80%', CLR_BLUE );
    //   o "main" eh o identificador da janela no caso de termos que nos referir a ela
    //   algumas coordenadas 50, 50
    //   largura e altura '80% 'e '80%'
    //   cor que definimos
    //   invocamos o método SetCss() que tem quase todos os controles que permitem injetar código css no controle.
    //     Neste caso, dizemos para colocar as bordas da janela arredondada. 
    
    // Criamos um painel que ocupará praticamente toda a janela principal. $oPanel = new TPanel( $oWnd, 'main_B', 25, 0, '100%', '100%', CLR_HGRAY );
    //   o importante é observar como crio este painel passando a variável que define a janela principal $oWnd.
    //   Este painel tem suas características e instanciamos na variável $oPanel
    
    // Criamos mais 2 painéis(main_C, main_D) que serão pendurados no painel que acabamos de construir $oPanel.
    //   Note que os 2 painéis têm a variável $oPanel como o primeiro parâmetro
    //   lBorder para true (mostra uma borda na janela) $oPanel->lBorder = true;
    //   SetShadow(5) é um método que cria uma sombra
    
    // O painel $oPanel_D usa 2 métodos importantes, isso ajuda a ajustar o controle neste painel
    //   SetBottom(20) o painel será ajustado a 20 pixels a partir da parte inferior
    //   SetRight (20) o painel será ajustado a 20 pixels do lado direito
    
    // e finalemente o $oWnd->Activate() inicializa a janela principal e todos seus controles vinculados
    
    ?>
    // parte JS que será responsável por interagir controles com ações. $oBtn = new TButton( $oWnd, 'mybutton' , 100, 100, 'Hello world !', 'Hello()' );
    <script>
      function Hello() {
          MsgInfo( 'Hello !' );
          }
    
    </script>
    
    

    see teste1.php http://sistem.net.br/tweb.examples/teste1.php

     

    exemplo com banco de dados:

    <?php
    include_once( 'config.php' );
    include_once( 'config_db.php' );                   // neste arquivo configura a conexao com o DB
    include_once( TWEB_PATH . 'tdatabase.php' );
    
    	$oDb = new TDatabase( DB_SERVER, DB_USER, DB_PSW, DB_DATABASE );
    
    	$cSql = 'SELECT * FROM clie WHERE est_clie = "BA"';
    
    	$oDb->Query( $cSql ) ;
    
    	echo '<br>Count: ' . $oDb->RecCount();
    	echo '<br>';
    
    	$oDb->Skip();
    
    	while ( ! $oDb->Eof() ) {
    
    		echo '<br>Registro: ' . $oDb->Get( 'cod_clie' ) . ' - ' . $oDb->Get( 'nom_clie' ) . ' - ' . $oDb->Get( 'end_clie' );
    
    		$oDb->Skip();
    	}
    
    	$oDb->Close();
    ?>

    resultado:

    bd.jpg?1522493110

    outros ex:

    http://sistem.net.br/tweb.examples/test_get_btn.php

    http://sistem.net.br/tweb.examples/test_frame.php

    http://sistem.net.br/tweb.examples/test_get_picture.php

    http://sistem.net.br/tweb.examples/test_grid_css.php

    todos os exemplos http://sistem.net.br/tweb.examples/

    exemplos.jpg?1522448672

     

  8. 1) uso mysqldump para backup

    cComando := oApp:cDir_001+"mysqldump --host="+oApp:IpSQL+" --port="+oApp:SQLPort+" -u "+oApp:UID+" -p"+oApp:PWD+" --all-databases > "+oApp:BackupPath+"\backupD"+strtran(dtos(Date()), "/","")+"T"+Strtran(time(), ":", "")+".sql"
          MsgRun( "Gerando Backup", "Backup Automatico, Aguarde...", {|| MYRUN(cComando) } )
    
    
    Function MYRUN( cComando )
    Local oShell, Ret
    
      oShell := CreateObject( "WScript.Shell" )
      Ret := oShell:Run( "%comspec% /c " + cComando, 0, .t. )
      oShell := Nil
    
    Return If( Ret=0, .t., .f. )
    

    2) como assim... controle de usuários conectados? o controle de usuários no meu caso é por meio do meu programa  :rolleyes:

    não entendi a pergunta... mas com esse comando vc ver usuários conectados => show full processlist;

  9. Amigo oribeiro tem que usar instruções SQL tipo: drop table produtos;

    ex:     

    If SR_ExistTable( "produtos" )
       SR_GetConnection():exec( "drop table produtos;" )
    Endif
    

      dica - veja esses videos se vc esta começando em sql

     youtube.com/watch?v=GaOlyL3Uv9M  procure o inicio dos videos pq esse do link nao eh o inicio e sim a sequencia

  10. hudson, poderia usar o CDOSYS, veja:

    em vbscript  (salvar com bloco de notas ex: email.vbs) o código abaixo:

    sendmail()
    Sub sendmail()
      Set iMsg = CreateObject("CDO.Message")
      Set iConf = CreateObject("CDO.Configuration")
    
      iConf.Load -1 ' CDO Source Defaults
      Set Flds = iConf.Fields
    
      With Flds
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
       'Ativar autenticação SSL
    
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
       '1 habilita a autenticação básica,
       '2 permite autenticação NTLM,
       '0 desativa a autenticação
    
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "teste@gmail.com"  'email/nome da conta ex.com gmail
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30        'tempo limite de conexão
       .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "SuaSenha"         'senha remetente
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")   = "smtp.gmail.com"   'servidor smtp ex.com gmail
       'yahoo smtp.mail.yahoo.com  465 *Abilitar a opção "permitir apps que usam métodos de acesso menos seguros" na sua conta site so yahoo
       'outlook smtp.live.com, outlook.office365.com, smtp-mail.outlook.com 587, 25
       'gmail smtp.gmail.com 465
    
       .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
       '2-enviar usando porta
       '1-enviar usando servidor smtp local
       '3-enviar usando exchange server
    
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465                       'porta smtp a ser habilitada ex. com gmail
       .Update
      End With
    
      With iMsg
       Set .Configuration = iConf
       .To = "teste@gmail.com"             'email destinatário
       .CC = ""                            'carbon copy
       .BCC = ""                           'blind carbon copy
       .From = "teste@gmail.com"           'email remetente ex. com gmail
       .Subject = "email usando vbscript"  'assunto
       .TextBody = "mensagem do email"     'mensagem
      '.HtmlBody = "<html> <head><meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8""></head><body></body></html>"  'para envio de mensagem no formato html
       .AddAttachment "e:\teste1.txt"      'anexo 1
       .AddAttachment "e:\teste2.txt"      'anexo 2 ... .. .
       .Send
       MsgBox "ok"
      End With
    End Sub

    execute assim: cscript //nologo email.vbs ou 2 click mesmo 

    em fivewin ficaria:

    #include "fivewin.ch"
    
    Function Main()
      local oCfg, oError, oMsg, lRet:= .f.
    
      TRY
        oCfg := CREATEOBJECT( "CDO.Configuration" )
          WITH OBJECT oCfg:Fields
               :Item( "http://schemas.microsoft.com/cdo/configuration/cdoBasic"         ):Value := 1
               :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing"        ):Value := 2
               :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ):Value := .t.
               :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl"       ):Value := .t.
               :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver"       ):Value := "smtp.gmail.com"      // ex. com gmail
               :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport"   ):Value := 465                   // ex. com gmail
               :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername"     ):Value := "SeuEMail@gmail.com"  // ex.com gmail
               :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword"     ):Value := "SuaSenha"
               :Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" ):Value := 30
    //         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusetls"       ):Value := .t.
    //         :Item( "http://schemas.microsoft.com/cdo/configuration/cdoSendTLS"       ):Value := .t.
    //         :Item( "http://schemas.microsoft.com/cdo/configuration/HtmlBody = "<html> <head><meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8""></head><body>TESTE</body></html>"
               :Update()
          END WITH
    
      CATCH oError
           ? "Error: "     + Transform(oError:GenCode,   nil) + ";" +CRLF+ ;
             "SubC: "      + Transform(oError:SubCode,   nil) + ";" +CRLF+ ;
             "OSCode: "    + Transform(oError:OsCode,    nil) + ";" +CRLF+ ;
             "SubSystem: " + Transform(oError:SubSystem, nil) + ";" +CRLF+ ;
             "Mensagem: "   + oError:Description
      END
    
      TRY
        oMsg := CREATEOBJECT ( "CDO.Message" )
          WITH OBJECT oMsg
               :Configuration = oCfg
               :From     = "EmailRemetente@gmail.com"   // ex. com gmail
               :To       = "EmeilDdestino@gmail.com"    // ex. com gmail 
               :Subject  = "Assunto do email"
               :TextBody = "SuaMsg"
               :AddAttachment = "e:\teste1.txt"
               :AddAttachment = "e:\teste2.txt"
               :Send()
          END WITH
          lRet := .t.
      CATCH oError
           ? "Error: "     + Transform(oError:GenCode,   nil) + ";" +CRLF+ ;
             "SubC: "      + Transform(oError:SubCode,   nil) + ";" +CRLF+ ;
             "OSCode: "    + Transform(oError:OsCode,    nil) + ";" +CRLF+ ;
             "SubSystem: " + Transform(oError:SubSystem, nil) + ";" +CRLF+ ;
             "Mensagem: "   + oError:Description
      END
    
      If lRet
         ? "ok"
      Endif
    
    Return nil
    

    agora a noticia ruim eh que nao consegui enviar emails com servicos da microsoft, tipo: windowslive.com  hotmail.com outlook.com 

    gmail, yahoo... trabalha bem

×
×
  • Create New...