Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. que linguagem de programação voce está usando ?
  2. é o comando l.append (let) que fica duplicando as letras
  3. Tenho a mesma licença instalada em mais de um computador ...o Bill Gates ( multimilionário ) não se importa com isso. Para ele só interessa grandes empresas e não usuário domestico. se está preocupado em usar o mesmo serial, na internet tem vários que voce pode usar mas se a sua consciência condena, então não faça. abraço
  4. E se a Microsoft não permitir a minha licença que já veio com o notebook? a licença ( serial ) que vem junto com windows é permanente ... se voce precisar formatar e reinstalar novamente, voce pode fazer isso quantas vezes quiser. voce pode instalar o windows 32 bits numa maquina de 64 bits o contrario é que não pode se voce tem o cd de instalação do windows professional, voce pode instalar no notebook sem problemas. abraço
  5. a solução é formatar o hd e reinstalar o windows e todos os outros drives do notebook. se voce tiver o windows para instalar, vai encontrar tambem o serial mas o Windows 7 - Professional é melhor que o Windows 7 - Home Premium OBS: o Avast costuma deixar o micro lento depois de algum tempo. Prefiro usar um Firewall do que usar o Avast. abraço
  6. sinto não poder ajuda-lo mais ...sem os componentes que voce usa, fica dificil até para testar alguma coisa aqui. abraço
  7. Jhonas

    Perda de Dados

    No meu caso eu tenho quase a certeza de que foi a problema de queda na Energia um bom nobreak resolve o problema são apenas duas maquinas emitindo as NFCes e várias foram perdidas experimente trabalhar com tabelas locais, com atualização posterior no servidor vai evitar de perder registros importantes. abraço
  8. https://www.4shared.com/zip/JpKijal8ca/ETL.html My 4shared_1494683550399.zip OBS: O arquivo zip esta vazio. [Firedac][Phys]-609.Key fields are not defined. Os campos chaves não estão definidos [Firedac][Comp][DM]-608.Undefined source field or expression for destination field [%s] Campo ou expressão de origem indefinida para o campo de destino com relação a isso, veja o link https://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Unique_Identifying_Fields_(FireDAC)&prev=search não tenho o Firedac, então fica dificil ajuda-lo nesse ponto. o banco está no mesmo local, só em maquinas separadas, então internet e rede não será o problema, já queria utilizar algo pronto, mas a ideia é essa, tenho o banco local, só não queria trazer uns 1000 registros e dar um loop nele para verificar quem atualizou para atualizou ou inserir, mas de qualquer forma vou gravar no registro que ele foi atualizado, assim vou garantir mais a integridade. se o banco de dados esta no mesmo local, não é necessario trabalhar com outro banco local. tenho um sistema funcionando dessa maneira. o banco esta em um servidor com outras maquinas acessando-o. O banco tem algumas tabelas com mais de 200.000 registros e trago apenas de 100 em 100 registros na tela. ( uma rede de 1Gb ) bem rapido. a atualização dos dados é feita diretamente no banco via ClientDataSet ( que é uma copia da tabela que estou trabalhando no momento ) se houver algum problema, só perco o ultimo registro. uma solução bem simples para voce, é criar um campo de controle na tabela nesse campo voce indica que tipo de atualização será feita. exemplo: usando um campo numerico 1 - insert 2 - update depois voce cria uma rotina somente para ler esse campo e executar esse procedimento na tabela destino ... fica muito rapido. abraço
  9. voce vai achar muito material na internet versando sobre o assunto https://www.google.com.br/?gws_rd=ssl#q=sincronizar+base+de+dados+sql+server entretanto de forma prática, se os dados da base SQLServer ( Servidor ) esta distante do ( Cliente ) e essa atualização seria via internet ou intranet, voce pode optar por usar um banco de dados local e replicar as alterações no Servidor. se a conexão não for problema, então voce pode verificar se houve alteração a todo insert ou update direto no banco do Servidor. se houver restrição na conexão ( falhas ) então, trabalhe com um banco local e faça a atualização do Servidor sempre em segundo plano ( Threads ) https://www.google.com.br/?gws_rd=ssl#q=threads+delphi+example dessa maneira voce não trava a aplicação na atualização do banco de dados. neste caso o controle sobre os processos devem ser muito bem estruturados. abraço
  10. procure saber se não existe algum update para o delphi berlin se houverem componentes com bugs nessa versão do delphi, a embarcadero vai soltar alguma correção. https://www.google.com.br/?gws_rd=ssl#q=update+delphi+berlin abraço
  11. Porem se eu repetir o processo a estação 02 Modifica um Cadastro de um cliente, (trocar o endereço) , gravar os dados. Dai vou na estação 07 Fecho o Sistema(erp) e Reabro ele os dados estão atualizados. o fato de fechar e reabrir o sistema, ele faz o que deveria ser feito em tempo de execução o mysql é chato nesse ponto, mas com o comando Refresh depois de abrir as tabelas já resolve esse problema. abraço
  12. troque a versão do seu mysql que resolve abraço
  13. desinstale tudo ... e delete tambem todas as referencias ( pastas e arquivos que sobrarem depois da desinstalação ) depois instale o mysql novamente e faça a configuração se não fizer isso, voce não consegue criar uma nova conexão com o banco de dados abraços
  14. Erro: Instanciação do Aplicativo Erro: comando SELECT negado ao usuário 'simultan_guisp' @ 'localhost' para a tabela '#__session' SQL = SELECT `session_id` FROM` #__ session` WHERE `session_id` = 'fea6f595e73faba98de4d10069d7f05c' LIMIT 1 o erro é na select .... se o erro não acontecia antes de fazer a importação do banco de dados, refaça novamente o procedimento, mas antes faça uma varredura nos dados das tabelas, para ver se encontra alguma coisa diferente. abraço
  15. nesse link tem alguns dados que voce pode usar para testes https://profwendellrs.files.wordpress.com/2012/08/videolocadora.docx abraço
  16. Jhonas

    Perda de Dados

    problema com perda de dados variam muito... pode ser por: variação ou falha eletrica bad clusters no HD tempo de resposta entre cliente e servidor ( demorado ) trafego de dados muito alto comandos falhos ou incompletos .. etc abraço
  17. o erro pode estar no proprio componente BatchMove já peguei erros assim, e depois de quebrar muito a cabeça, o erro não estava no código que eu estava montando, mas sim no código do componente. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Provider, DBClient, DB, StdCtrls, DBTables, Grids, DBGrids; type TForm1 = class(TForm) DBGrid1: TDBGrid; DBGrid2: TDBGrid; Table1: TTable; Table2: TTable; Button1: TButton; DataSource1: TDataSource; DataSource2: TDataSource; Table1NUM: TFloatField; Table1CODIGO_FS: TStringField; Table1DATA: TDateField; Table1AUTOR: TStringField; Table1VOLUME: TStringField; Table1SINOPSE: TMemoField; BatchMove1: TBatchMove; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i : integer; y: Integer; nCount: Integer; cField: TField; cName: array[0..100] of String; cType: array[0..100] of TFieldType; nSize: array[0..100] of Integer; bReqd: array[0..100] of Boolean; begin with Table1 do begin Active := False; DatabaseName := 'C:\'; TableName := 'Source'; nCount := FieldCount; for y := 0 to nCount - 1 do begin cField := Table1.Fields[y]; cName[y] := cField.FieldName; cType[y] := cField.DataType; nSize[y] := cField.Size; bReqd[y] := cField.Required; end; end; with Table2 do begin Active := False; DatabaseName := 'C:\'; TableName := 'Destination'; TableType := ttDefault; with FieldDefs do begin Clear; for y := 0 to nCount - 1 do begin Add(cName[y], cType[y], nSize[y], bReqd[y]); end; end; CreateTable; end; end; end. esse código copia a estrutura do Table1 para o Table2 corretamente depois bastaria popular os campos
  18. As setas do grid b são os campos que tem na tabela b e que não mando, no componente Table, voce pode escolher quais os campos da tabela voce quer ( duplo clique com o botão esquerdo no componente e adicione apenas os campos que voce precisa ) fazer a saida do BatchMoveDataSetWriter por uma query tem como ? nunca fiz, mas acho que é possivel http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/FireDAC.TFDBatchMove_Sample OBS: porque voce não cria uma tabela com todos os campos que voce precisa da tabela A e da tabela B, e simplesmente joga os resultados nela ? quanto ao erro: Exceção de primeira chance em $ 76D3A9F2. Classe de exceção EFDException com mensagem '[FireDAC] [Comp] [DM] -608. Campo ou expressão de origem indefinida para o campo de destino [% s] '. voce colocou um campo que não existe ou não foi definido para a tabela destino
  19. acho que esse exemplo te serve https://elias.praciano.com/2015/04/como-inserir-o-resultado-de-uma-query-select-em-uma-tabela-mysql/ se não for isso, me passa alguns dos dados que estão no dataset e que voce quer jogar para o table, para eu ter uma ideia.
  20. Vamos la, eu tenho a tabela criada no banco, mas tem campos nela que eu não quero trazer. exemplo: vamos supor que voce tem uma tabela com varios campos e precisa apenas de alguns deles: na select voce pode especificar somente os campos que voce quer trazer select campo1, campo2, campo5, campo8 from tabela ou no object inspector do clientdataset voce joga somente os campos que quer que apareçam select * from tabela no clientdataset voce deixa somente os campos que quer. -------------------------------------------- ou voce pode criar uma tabela temporaria com os dados da consulta via query, mas acho que a sugestão acima resolve. a não ser que voce queira adicionar outros campos na tabela alem dos que já existem. abraço
  21. a tabela já existe ou voce quer criar ? dê um exemplo do que voce esta querendo fazer.
  22. exemplo: with BatchMove1 do begin Mode := batCopy; // procure no help para mais opções Mappings.clear; Source := Table1; Destination := Table2; Mappings := <TStrings>; // Execute; end; //Mappings é um Stringlist no Form //FieldName(Destination) = FieldName(Source) //Nome2 = Nome1; //Rendimento = Salario; //Nome1, Salario de (Source) é copiado para Nome2, Rendimento de (Destination), //respectivamente. abraço
  23. tente assim var s : string; begin s := 'SELECT * FROM t_escaladetalhe where IDCLiente_EscalaDetalhe = 66 '+ 'and idFUncao_EscalaDetalhe in (8,35) '+ 'and DtEvento_EscalaDetalhe between "2017-04-01" and "2017-04-30" '+ ' and HrEntrada_EscalaDetalhe between "00:00:00" and "12:00:00" '+ 'order by DtEvento_EscalaDetalhe,HrEntrada_EscalaDetalhe,IDCooperado_EscalaDetalhe'; DM.qryEscalaDetalhe.close; DM.qryEscalaDetalhe.sql.clear; DM.qryEscalaDetalhe.sql.Add(s); DM.qryEscalaDetalhe.ParamByName('pID').Value := edClienteDe.Text; DM.qryEscalaDetalhe.ParamByName('pFuncao').Value := sCodFuncao; DM.qryEscalaDetalhe.ParamByName('pDI').Value := FormatDateTime('yyyy-mm-dd', dtInicio.Date ); DM.qryEscalaDetalhe.ParamByName('pDF').Value := FormatDateTime('yyyy-mm-dd', dtFim.Date ); DM.qryEscalaDetalhe.ParamByName('pHrI').Value := TimeToStr( edHrDe.Time ) ; DM.qryEscalaDetalhe.ParamByName('pHrF').Value := TimeToStr( edHrAte.Time ) ; DM.qryEscalaDetalhe.open; end; se não funcionar mude para DM.qryEscalaDetalhe.sql.Add(Pchar(s)); abraço
  24. Erro: Nem todas as correções do Fix Pack da IDE foram aplicados. Correções falharam. Em virtude disso houve erro de violação de memória. A solução é voce desinstalar essa dll. Caso voce não consiga desinstalar pelo windows , tente esse software http://www.techtudo.com.br/tudo-sobre/iobit-uninstaller.html ou tente pelo google https://www.google.com.br/?gws_rd=ssl#q=desinstalar+dll+regsvr32 abraço
  25. Exemplo para 31/12/2017 = 17365 AA = 17 NNN = 365 voce quer contar a data inicial a partir de quando ? se for a data do inicio do ano seria isso .. baseado no seu exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Data : string; implementation {$R *.DFM} Uses DateUtils; function DiasdoAno(Datax: TDate):Integer; var Data: tDateTime; Soma: variant; begin data:=strtodate('01/01/'+inttostr(YearOf(datax))); soma:=datax-data; DiasdoAno:=soma+1; end; procedure TForm1.Button1Click(Sender: TObject); var AA, NNN : integer; s : string; begin Data:= InputBox('Data Gregoriana', 'Digite uma data', '00/00/0000'); AA := strtoint(copy(data,9,2)); NNN := DiasdoAno(strtodate(Data)); s := inttostr(AA) + inttostr(NNN); showmessage(s); end; end. OBS: mas sugiro que veja esse link, para tirar duvidas http://ghiorzi.org/diasjuli.htm so para esclarecer Se AA =< 95, então soma em 20XX. se o ano for 2017 então AA = 17 que é menor que 95 somando 2000 daria os mesmos 2017 abraço
×
×
  • Criar Novo...