Ir para conteúdo
Fórum Script Brasil

João Paulo Taraciuk

Membros
  • Total de itens

    227
  • Registro em

  • Última visita

Tudo que João Paulo Taraciuk postou

  1. Olá, estou tentando utilizar o JAVA com o PostgreSQL, porém, ocorre um problema no que diz respeito a cadastrar dados que contenham caracteres especiais, aparecem no banco de dados esses caracteres como símbolos, isso ocorre também com o JAVA e MySQL. Se eu utilizo o Delphi para inserir dados insere normalmente essas strings, ou mesmo inserindo diretamente no banco de dados, não tem problemas. Eu tenho que definir na conexão o Character set no JAVA, e, se for isso, como eu tenho que fazer? Estou conectando assim : Connection con; con = DriverManager.getConnection("jdbc:odbc:BANCO1", "postgres", "postgres"); Utilizo o Banco de dados na Versao 8.4, Vista com idioma Inglês.
  2. Olá, estou testando o PostGreSQL, pois pretendo fazer meu projeto de TCC da faculdade utilizando ele, instalei o banco, criei um banquinho de dados pra teste chamado BANCO1, criei uma tabela chamada produtos, aí é que está o meu questionamento, se eu tento executar um select como faço normalmente com outros bancos de dados, não dá certo, tipo em um select assim: SELECT * FROM produtos não dá certo no PostgreSQL, então, colocando da forma abaixo, dá certo SELECT * FROM "BANCO1".produtos Então, eu sempre tenho que colocar o nome do banco antes da tabela pra poder realizar o select ou outro procedimento ou existe forma de fazer como com outros bancos de dados? Instalei a versão 8.4 dele.
  3. Isso mesmo fulvio, acho que assim vai fechar, eu tinha tentado pelo Round() ou pelo arredondamento . Obrigado pelo auxílio fulvio.
  4. Foi seguindo algo mais ou menos parecido que eu criei esse código, pegando pelo manual do BB: Layout Boleto Banco do Brasil Fiquei um tanto em dúvida somente na geracao do Dígito no Nosso Número, que em alguns boletos que ví por aí, ele não aparece, mas tem alguns que tem esse dígito, e, se reparar nesse manual, que tá no link do BB, repare na página 17, onde o dígito se faria do calculo de 712/11, e, no exemplo o resto da divisao daria 8, não entendi a forma de cálculo. No meu cálculo daria 7, mesmo para o SQL Server: select round(64.727272727272727272727272727273, 1) Acabei de enviar um email à ouvidoria do BB, vamos ver em quantos dias vou receber a resposta.
  5. Olá Estou com uma dúvida no que diz respeito ao cálculo do dígito verificador do Nosso Número de boleto do Banco do Brasil, no meu caso, seria uma carteira de 7 digitos e o Nosso Numero tem 10, então teríamos 17 casas, pelo que entendi, teria que utiliza o calculo do Modulo 11, pelo layout, mas lá pega 11 números para fazer a conta, e, no meu caso, eu tenho 10. Esse dígito do Nosso Número, acho que não vai fazer parte da Linha digitável do código de barras. O que eu fiz foi mais ou menos isso: DECLARE @i INT, @Contador INT, @Num VARCHAR(10), @Soma INT, @total NUMERIC(10, 4), @digito VARCHAR (1) -- Aqui fica uma das minhas dúvidas, se eu pego o número todo ou somente os 10 pro cálculo -- Esse é composto pelos 7 dígito do contrato e os 10 do Nosso Numero --set @Num = '12345670001123456' set @Num = '0001123456' set @contador = 9 set @i = LEN(@Num) set @soma = 0 set @total = 0.00 while @i > 0 begin if(@Contador >= 2) begin select @Soma = @Soma + CONVERT(INT, SUBSTRING(@num, @i, 1)) * @contador set @contador = @contador -1 end else if(@Contador < 2) begin set @Contador = 9 select @Soma = @Soma + CONVERT(INT, SUBSTRING(@num, @i, 1)) * @contador set @contador = @contador -1 end set @i = @i - 1 end SET @total = CONVERT(NUMERIC(10,4), @soma) / 11 SELECT @digito = SUBSTRING(CONVERT(VARCHAR(10), @total), CHARINDEX('.', @total) + 1, 1) print @digito Outra coisa que não compreendi, é se, arredonda as casas depois da vírgula ou pega "seco" o primeiro dígito depois do ponto, nesse código eu fiz somente pegando o primeiro depois da vírgula. Se alguém puder me ajudar a solucionar essa dúvida, eu agradeço.
  6. Tentei com o IBExpert, mas me retorna o mesmo erro, lembrando que eu não tenho nenhum o banco em funcionamento aqui, tenho somente o .gbk
  7. EU tenho somente o arquivo .gbk de uma base de dados firebird, estou tentando restaurar ele com o seguinte comando: mas ele dá as mensagens: Eu teria que ter a base de dados rodando pra poder abrir esse backup? Existe forma de eu restaurar esse banco somente com o .gbk ?
  8. Imaginando que o seu DBGrid esteja ligado a uma Query, que nessa query deve ter algum campo de data, deve-se adicionar a data como parametro na Query: Query1.Close(); Query1.SQL.Clear; Query1.SQL.Add('SELECT Campos FROM TABELA WHERE CampoData =:Data'); Query1.Parameters.ParamByName('Data').Value := MonthCalendar1.Date; Query1.Open(); Isso levando em considerecao que voce tem um MonthCalendar no form, poderia chamar o select no OnCLick do MonthCalendar.
  9. Como sempre temos a necessidade de manipular dados com o Delphi, resolvi testar a diferença de performance entre diferentes componentes, pra ver no que dava. Utilizando delphi 7, fiz um for de 0 a 100000: procedure TForm1.Button1Click(Sender: TObject); var I: Integer; tempo: TDateTime; begin tempo := Now; Gauge1.Progress := 0; for I := 0 to 100000 do begin Memo1.Lines.Add(IntToStr(I)+ ' - Isso é um teste -> ' + FormatDateTime('HH:MM:SS:ZZZ', Now)); Gauge1.Progress := Gauge1.Progress + 1; end; Edit2.Text := FormatDateTime('HH:MM:SS:ZZZ', tempo - Now); end; O resultado dos tempos que demorou para cada componente passar pelo for foi o seguinte: Testei em condições muito parecidas, com os mesmos processos rodando no momento de execução, levando em consideração que tenho vários bancos rodando no micro, a diferença entre um componente e outro fica muito parecida se utilizado o Delphi 7 ou o 2007.
  10. Boa dica, então, outro dia, encontrei uma chave no registro : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment em: PROCESSOR_ARCHITETURE , no meu caso, que é 32Bits, está x86, infelizmente não tenho no momento um micro 64Bits pra testar, mas imagino que ali nesta chave vai estar identificada a plataforma, então, imagino que daria pra ler esta chave pra saber se é 32 ou 64 Bits.
  11. Bom, o view style dele está como vsReport, ShowColumnHeaders está como true, consigo pegar a posicao do mouse, mas somente no form todo com o CursorPos(), você saberia um macete pra pegar a posicao do mouse dentro do componente ? Porque se eu coloco pra pegar a posicao X com o CursorPos(), quando movimenta o form, troca de lugar, o número muda.
  12. No primeiro ShowMessage, retorna: clicou no item // aparece em branco o local onde deveria aparecer o título No segundo mostra o numero da linha clicada, tem algo que eu tenha que mexer no listview para que aparece o numero da coluna? Ou de repente se eu pegar a posicao, a coordenada do listview que foi clicada, já resolveria o meu problema
  13. E tem como saber qual o número da coluna que pertence o ítem que cliquei ? Se col 0, col1... Poderia ser até o Título da coluna.
  14. Bom dia Estou utilizando um ListView para exibir dados, porém surgiu um problema, pesquisei mas não encontrei a solucao, estou alimentando o ListView assim: procedure TForm1.Button1Click(Sender: TObject); var Lista: TListItem; begin Lista:=ListView1.Items.Add; Lista.SubItems.Add(Edit1.Text); end; Eu preciso executar um evento ao clicar em uma linha na coluna 1, e somente na 1, por que na 0 tem um checkbox,porém, não sei como faço para saber em que coluna cliquei. algo como: Se algumém puder me ajudar, eu agradeço.
  15. Olá Gostaria de saber como poderia fazer pra descobrir se o windows é 32 ou 64 bits via Delphi. Se alguém puder me dar uma dica, eu agradeço.
  16. É um excelente componente, porém, infelizmente, no meu trabalho, não posso utilizar componente que não seja nativo do Delphi. Obrigado pela ajuda!!!
  17. Boa tarde Estou encontrando dificuldades pra carregar algo como um plano de contas, com vários níveis para um TTreeView, quando sei a quantidade de níveis que vai ter, é moleza, agora, neste caso eu não sei quanto nós nem quantos níveis o TreeView vai ter. Alguém já fez algo neste sentido no delphi. Vou carregar os dados de uma Tabela.
  18. Então, consegui pegar o nome do componente que realizou a última operacao, assim: Screen.ActiveControl.Name Agora, comeca a ficar mais divertido, eu gostaria de saber se tem como eu saber o nome do evento executado por determinado componente, algo como: Se eu der um TAB num TEdit, de um ShowMessage com a mensagem : "OnExit". Será que tem como fazer isso ?
  19. Bom Jhonas, na verdade o que eu estou tentando fazer é o seguinte, coloquei um ApplicationEvents no form principal e no evento OnException dele coloquei o código: procedure TForm1.ApEvPrincipalException(Sender: TObject; E: Exception); begin try MensagemEmail:=TStringList.Create; MensagemEmail.Add('CLIENTE: [' + BuscaNomeCliente() + ']'); MensagemEmail.Add('APLICAÇÃO: [' + Application.Title + ']'); MensagemEmail.Add('LOCAL: FORM['+Screen.ActiveForm.Name+ '] CAPTION['+ Screen.ActiveForm.Caption +']'); MensagemEmail.Add('DATA/HORA: ['+DateTimeToStr(Now)+']'); MensagemEmail.Add('ERRO: ['+ E.Message+']'); MensagemEmail.Add('------------------------------------------------------'); MensagemEmail.Add(''); MensagemEmail.Add('======================================================'); EnviaEmail(); Application.MessageBox('Ocorreu um erro, um e-mail será enviado ao suporte', 'INFORMAÇÃO', MB_ICONINFORMATION + MB_OK); except END; end; Então, ele pega o erro com o nome do form e me manda um e-mail, mas eu queria um pouco mais, gostaria que ele me trouxesse o nome do componente que disparou o exception de dentro do form, tentei colocar da forma que você sugeriu, mas me retorna o nome do form, que, tendo o nome do componente, eu vou tentar descobrir o evento realizado por ele que causou erro. Por que dessa forma, com apenas esse código, eu capturo todos os erros da aplicacao, e o local exato de onde partiram. Abraço!!!
  20. Olá, tenta fazer algo mais ou menos dessa maneira: procedure TForm1.Button1Click(Sender: TObject); begin with DataModule.ADOQuery1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from tb_funcionario where login =:log and senha =:snh'); Parameters.ParamByName('log').Value:=edit_login.Text; Parameters.ParamByName('snh').Value:=edit_passwd.Text; Active:=True; //================================================ if RecordCount > 0 then F_Principal.ShowModal else ShowMessage('Login ou Senha incorretos, verifique'); end; end; No caso, no IF Estamos verificando se a consulta foi maior que zero, ou seja, que o login e a senha digitados são iguais aos que tem no banco de dados, aí, abre o form principal, caso contrario apresenta a mensagem ao usuario. Tenta aí, qualquer coisa, posta novamente.
  21. Boa tarde Estou fazendo uma rotina para capturar erros do sistema e mandar um e-mail com as informações de Form, tipo de erro, etc. O que eu gostaria de saber é se tem como pegar o nome do componente onde ocorreu determinada exceção ou mesmo o nome do evento que ocasionou uma exceção, tentei colocar no OnMessage do ApplicationEvents o código Variavel:=ActiveControl.Name, mas retorna Access Violation. Tem alguma forma de saber isso no Try ?
  22. Resolvi o problema em partes, adicionando um botão na linha, fazendo assim, consigo verificar a linha que quero excluir.
  23. Resolvido com a utilização de um try try ADOConnection1.Connected:=True; Timer1.Enabled:=False; verificador:='s'; Label3.Caption:=IntToStr(variavel); Label4.Caption:='Conectou na tentativa ' + IntToStr(variavel); except on E : Exception do begin if(E.Message='Timeout expired')then begin ShowMessage('O Não foi possível conectar ao banco de dados') verificador:='n'; GeraLog(); if(Timer1.Enabled=False)then Timer1.Enabled:=True; end else if VerificaRede(E.Message) then begin ShowMessage('Não foi possível conexão com o servidor') Timer1.Enabled:=True; verificador:='n'; end; end; end; function TForm1.VerificaRede(Mensagem: string): Boolean; begin if POS('SQL SERVER NOT FOUND', UpperCase(Mensagem)) = 0 Then Result:=False else Result:=True; end; Assim eu sei quando o problema foi de conexao de rede ou de servidor "ocupado", e com a variavel "variavel", eu verifico quantas vezes o aplicativo tentou se conectar ao servidor. Obrigado pelas dicas Jhonas
  24. Olhando pelo MSDN, o problema aparentemente ocorreu já ao tentar conectar o banco. E teria uma forma de eu capturar este erro sem que ele projete uma msg de erro na tela do servidor, e, se não conseguir conectar com o banco de dados, tentar novamente o procedimento de inserção dentro de alguns instantes ?
  25. Tenho um aplicativo que trabalha direto, pegando dados de um determinado local, dados que vem armazenados em txt, e inserindo no banco de dados(SQL Server), porém, ocorreu um erro de "Esgotado o Tempo Limite" na operacao de inserir estes dados, sendo que em nenhum momento o servidor fcou off, ou desligado. O que podera ser feito para contornar este problema ?, ou para capturar este erro de tempo limite excedido ele volte a tentar fazer esse insert de tempos em tempos até que seja bem sucedido?
×
×
  • Criar Novo...