Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. O erro que você fala ("A first chance exception...") é só uma indicação de que poderia acontecer algo de errado ali. Experimente comentar as linhas do Try... Catch e veja qual é realmente o erro que ocorre (se ocorrer algum). Abraços!
  2. Você pode fazer algo assim: distancia = 5310.0 velocidade = 100.0 resultado = distancia/velocidade segundos = resultado*3600 print time.strftime("%d dias + %H:%M:%S", time.gmtime(segundos))Abraços!
  3. O "psql.trigger" é um arquivo que você deverá criar (dentro da pasta "data" do slave) para que o slave passe a aceitar escrita e interrompa a replicação com o master. Este arquivo pode ser criado a partir de qualquer editor de textos ou algo do tipo, ou você pode simplesmente copiar outro arquivo qualquer para a pasta "data" com esse nome exatamente ("psql.trigger"). Vale levar em consideração que, nas estações que acessam este banco de dados, provavelmente você faz a conexão com o master (vamos supor que o IP dele é 192.168.1.100), então apesar de seu slave ter sido promovido a master, o IP (ou o nome do computador) dele não mudará por causa disso, portanto seus clientes teriam agora que conectar com outro IP (vamos supor que o slave é 192.168.1.101). Então, para fazer isso ocorrer "automaticamente", você teria que fazer um script no seu slave que ficasse, de tempos em tempos, verificando se consegue se conectar ao master normalmente, e no caso de não conseguir, este script criaria o arquivo "psql.trigger" tornando-o master. E, além disso, seus clientes deveriam sempre tentar se conectar ao master (192.168.1.100), e caso não conseguissem, tentariam se conectar ao slave (192.168.1.101). É claro que tudo isso deveria ser bem pensado porque, por exemplo, uma simples falha momentânea na conexão de rede, poderia fazer a quebra da replicação sem real necessidade. Abraços!
  4. Esta mensagem de erro é muito vaga... O ideal seria ter o Visual Studio e rodar o projeto diretamente na máquina com problema, a fim de identificá-lo. Outra possibilidade seria fazer o debug remoto: https://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx Abraços!
  5. Depende de como sua tabela está estruturada (seus campos). Como você guardar essas "categorias" na tabela? Abraços!
  6. Se o campo é do tipo texto (um email), faltam as aspas para delimitar o texto: Dim sqll As String = "SELECT * FROM Cad_Cliente where N_Cad = '" & cod & "';" Abraços!
  7. Graymalkin

    PYTHON TCP/UDP

    Fiz o código abaixo sem testar (não estou com Python aqui no momento), então pode ter alguma coisa errada: import socket import thread import os import serial HOST = '' PORTA = 7000 PORTA_SERIAL = '/dev/ttyUSB1' BAUD_RATE = 9600 conSerial = serial.Serial(PORTA_SERIAL, BAUD_RATE) os.system("clear") def conecta(conexao, cliente): print "IP conectado | Porta", cliente while True: dados, endereco = conexao.recvfrom(1024) if dados: print "Cliente para Arduino: ", dados conSerial.write(dados) mensagem = conSerial.readline() print "Arduino Diz: ", mensagem udpSOCKET = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) conexaoORIGEM = (HOST, PORTA) udpSOCKET.bind(conexaoORIGEM) while True: thread.start_new_thread(conecta, tuple([udpSOCKET, conexaoORIGEM])) udpSOCKET.close() Repare que, no caso do UDP, não existe o lance de "esperar" a conexão e depois ficar "conectado", então tirei toda a parte que encerra a conexão e sai do programa, uma vez que é necessário ficar lendo (esperando) os dados chegarem e não dá pra ter uma noção de quando isso vai acabar (como ocorre com o TCP). Se a possibilidade de perder dados for crítica, recomendo continuar com o TCP, mas se não tiver nenhum problema em perder um pacote ou outro (ou os dados chegarem incompletos) veja se o UDP vai realmente te servir. Bem legal essa idéia de se comunicar com o Arduino, no caso de você não possuir um ethernet/wifi/bluetooth shield/módulo. Abraços!
  8. Você pode usar MoveWindow para mover e redimensionar a janela, veja um exemplo: Public Class Form1 Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer Private Const WM_SYSCOMMAND As Integer = 274 Private Const SC_MAXIMIZE As Integer = 61488 Public Declare Auto Function MoveWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal X As Int32, ByVal Y As Int32, ByVal nWidth As Int32, ByVal nHeight As Int32, ByVal bRepaint As Boolean) As Boolean Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim proc As Process proc = Process.Start("C:\windows\notepad.exe") proc.WaitForInputIdle() SetParent(proc.MainWindowHandle, Me.Handle) 'SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0) MoveWindow(proc.MainWindowHandle, 50, 100, 300, 300, True) Me.BringToFront() End Sub End Class E você postou na sala errada, esta aqui é apenas sobre o VB6. Para .NET use a respectiva sala. Abraços!
  9. Isso são parâmetros ou argumentos de linha de comando (command line arguments). Se você estiver usando o VB6 você os obtêm através da propriedade Command que retorna uma string com os parâmetros passados: MsgBox Command Já se for no VB.net olhe em Environment.GetCommandLineArgs(), que retorna um array de strings com os parâmetros passados. Abraços!
  10. Bom, vamos aos erros no seu código. Você utiliza B para guardar a base em... B = TXTBase.Text ... só que depois você perde este valor ao utilizá-lo no seu For: For B = 1 To x Neste caso, o ideal seria utilizar outra variável para isso. O outro problema está no conteúdo do For, onde você faz... cont = B * B ..., quando na verdade você deveria fazer... cont = cont * B ... ou nas versões mais novas do VB: cont *= B Além disso, cont não pode começar com 0, porque qualquer valor vezes 0 dá 0. O ideal é cont começar com 1, pois qualquer valor vezes 1 dá o próprio valor e caso a base seja 1 será este o retorno correto. O código completo seria esse aqui: Dim B As Integer Dim x As Integer Dim cont As Integer B = TXTBase.Text x = TXTExpoente.Text cont = 1 For k As Integer = 1 To x cont = cont * B Next MsgBox(cont) É claro que faltam algumas coisas aí como, por exemplo, verificar e converter o quê foi digitado na caixa de texto é realmente um número antes de jogar para a variável. Abraços!
  11. Graymalkin

    Ajuda com arquivo

    Olá, Tem certeza que os finais de linha estão todos padronizados? E que estão sendo reconhecidos corretamente? Recebo arquivos de diferentes fornecedores e alguns vem com \r, outros com \n e outros com \r\n. Se você tiver como anexar ou fazer o upload de um arquivo de exemplo daria pra ajudar mais. Abraços!
  12. Graymalkin

    Windows

    Aqui não é o local correto para isso, mas uma busca no Google te ajudaria. Abraços!
  13. Realmente quando se dá um VACUUM no servidor, o slave pára de sincronizar, pois quando faço um procedimento de backup, que inclui um VACUUM, vejo que a replicação pára por um tempo, mas volta logo em seguida sem problemas. Veja aí se aumentar o max_wal_segments resolve. Abraços!
  14. Legal, bom saber. Nunca tinha mexido com essa configuração, mas já tinha lido a respeito desse trabalho sincronizado. Abraços!
  15. Tente dar uma olhada no log do master (em data/pg_log), para ver se aparece alguma pista do que pode estar acontecendo. Abraços!
  16. O método append serve para adicionar um elemento à lista. Por exemplo, se você tem uma lista [1, 2, 3] e faz lista.append(4), você passa a ter [1, 2, 3, 4]. Abraços!
  17. Era pra funcionar normalmente, sem o slave estar ativo, e sem ter que fazer alguma configuração especial para isso. O máximo que aconteceria seria quebrar a replicação ao ativar novamente o slave. Você tem certeza que parou somente o slave? E qual é a mensagem de erro exibida ao tentar fazer alguma operação no master? Abraços!
  18. Sim, cheguei a instalá-lo uma vez para testar, mas não fui muito a fundo já que trata-se de um produto pago. A replicação nativa do PG atende minha necessidade, que é ter um backup quase instantâneo, e é de graça. Abraços!
  19. Exatamente, o slave é somente leitura. Para promover o slave para master (e quebrar a replicação) você só precisa criar o arquivo especificado em trigger_file do seu recovery.conf. Esse é o "gatilho" para ser usado caso o seu master venha a dar algum problema e você precise continuar o bom andamento do serviço. E, neste caso, o slave passando a ser o master, a escrita é permitida e a replicação pára, devendo ser refeita essa sincronia manualmente depois (com a cópia dos arquivos do jeito que você fez para a replicação funcionar). Certo? Abraços!
  20. Beleza, agora está quase. O que falta agora é só configurar o pg_hba.conf para aceitar conexões dentro da sua rede local. Para isso, abra o arquivo pg_hba.conf no Bloco de Notas e adicione a seguinte linha no final dele: host replication seta 192.168.99.1/24 md5 Faça isso em ambos (master e slave) e depois reinicie (você poderia só parar o serviço e iniciá-lo novamente, mas já tive um caso onde só funcionou depois de reiniciar as máquinas). Abraços!
  21. Você quer ativar um botão de um form em um computador diferente do qual você está, seria isso? Caso positivo, já deu uma pesquisada sobre sockets? Caso não, dê uma olhada neste tutorial: http://www.macoratti.net/net_soc1.htm Abraços!
  22. Boa noite, Paulo Respondendo a sua primeira pergunta, não eles não são totalmente idênticos. Talvez o seu problema esteja justamente aí na cópia. Os arquivos postgresql.conf e pg_hba.conf e as pastas pg_xlog e pg_log *não* devem ser copiadas do master para o slave. Até porque, em relação ao postgresql.conf e ao pg_hba.conf você fará modificações diferentes neles em ambos (master e slave). Faça o teste novamente e me diga se deu certo. Abraços!
  23. Não bastaria usar a opção "Executar como Administrador"? Abraços!
  24. Você pode usar o evento KeyDown da sua textbox para isso: Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.Enter Then MessageBox.Show("O texto digitado foi: " & TextBox1.Text) End If End Sub Abraços!
  25. Graymalkin

    Diretorios

    Você também poderia usar os.path.basename(caminho): import sys import os a = sys.path[0] b = os.path.basename(a) arq = open("SAXSlog_"+ b + ".txt", "a") Abraços!
×
×
  • Criar Novo...