
robinhocne
Membros-
Total de itens
854 -
Registro em
-
Última visita
Tudo que robinhocne postou
-
(Resolvido) Excerrar aplicação apos termino da Thread
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
hum.....show Jhonas... muito obrigado...caiu como uma luva. Jhonas uma pergunta....vou executar uma rotina que percorre uma query, faço uso do sleep ou não ? -
(Resolvido) Excerrar aplicação apos termino da Thread
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Então Jhonas, eu abro a aplicação, ai tenho um processo e dentro dele tem essa thread, ai quando o processo terminar (thread) a aplicação deve fechar sozinha.... -
(Resolvido) Excerrar aplicação apos termino da Thread
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
ele dá erro [dcc32 Error] Unit2.pas(98): E2009 Incompatible types: 'Parameter lists differ' -
(Resolvido) Excerrar aplicação apos termino da Thread
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
FinalizaRotina seria o que ? porque tentei criar procedure para fechar ou passei como nil, mas não foi. -
(Resolvido) Excerrar aplicação apos termino da Thread
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
está meio confuso dele....vou procurar uns exemplos.... -
Eu montei um processo atraves desse exemplo de Thread; procedure TForm2.Button2Click(Sender: TObject); var MyThread:TThread; begin ProgressBar1.Position := 0; ProgressBar2.Position := 0; MyThread := TThread.CreateAnonymousThread(procedure var i:integer; begin for i := 0 to 100 do begin TThread.Synchronize(MyThread, procedure begin ProgressBar1.Position := i; ProgressBar2.Position := i * 2; end); Sleep(100); end; end); MyThread.Start; end; porém agora o que eu preciso saber quando ela terminou para eu fechar a aplicação;
-
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
hum..... Com certeza....vlw Jhonas. -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Vlw Jhonas, mas fazendo do jeito que você passou no delphi 7 funciona e no Berlin não, mas desse jeito ai de cima funcionou... -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
ela é String.... Executando esse comando no delphi 7 ele roda: procedure TForm1.Button1Click(Sender: TObject); var nrProcesso :String; i : integer; begin for i := 0 to 2 do begin nrProcesso := '5'; WinExec(pchar('E:\Robinho\Teste\B.exe '+ nrProcesso),SW_NORMAL); end; end; Exectuando esse comando no delphi Berlin ele dá erro de [dcc32 Error] Unit3.pas(35): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar' Mas o nrProcesso é String e mudando para PAnsiChar....ele não roda.... ixi, como roda no Berlin... :( Opa.... \o/ assim funcionou... WinExec(PAnsiChar(AnsiString('E:\Robinho\Teste\B.exe '+nrProcesso)),SW_NORMAL); -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Jhonas usando assim : nrProcesso := '5'; WinExec(PChar('E:\Projetos\teste\Win32\Debug\B.exe '+nrProcesso),SW_NORMAL); eu tenho erro [dcc32 Error] fA.pas(88): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar' mudando para PAnsiChar não dá erro, mas não executa, estou com o delphi Berlin, será que é por isso ? -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
não executa também. pesquisando na internet, achei essa função; function TFuncoes.RunProcess(FileName: string; Params: string): Boolean; var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; Done: Boolean; begin FillChar(StartInfo,SizeOf(TStartupInfo),#0); FillChar(ProcInfo,SizeOf(TProcessInformation),#0); StartInfo.cb := SizeOf(TStartupInfo); try {$IFDEF UNICODE} if StringRefCount(FileName) = -1 then begin FileName := Copy(FileName, 1, MaxInt); end; {$ENDIF UNICODE} Done := CreateProcess(nil, PChar(FileName + ' ' + Params), nil, nil,False, CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo); Result := Done; finally CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; end; e executando assim : Executa('E:\Projetos\teste\Win32\Debug\B.exe '+nrProcesso,SW_SHOWNORMAL); ele funciona, mas não consigo executa vários ao mesmo tempo, tenho que fechar para abrir o proximo. -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
saquei, mas estou tetando passar o parametro como variavel e ai ele não abre nada.... -
(Resolvido) Executar Programa Externo com Parametros
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
consegui montar, executando pelo cmd está funcionando, mas quando vou chamar e passar o parametro não tá indo....fiz assim no programa A: dessa maneira funciona, mas eu preciso pegar esse valor "5" e passar como parametro, pois vou percorrer um query WinExec(PAnsiChar('E:\Projetos\Teste\Win32\Debug\B.exe "5"'), SW_SHOWNORMAL); dessa maneira ele nem abre.... nrProcesso := '5'; WinExec(PAnsiChar('E:\Projetos\teste\Win32\Debug\B.exe "'+nrProcesso+'"'), SW_SHOWNORMAL); -
Boa tarde, Eu tenho um aplicativo A que irá chamar outro aplicativo meu B, todos em delphi.... Quando o aplicativo A chamar o B eu preciso passar um parametro (String) para o parametro B e quando o parametro B abrir ele já pegar esse Parametro. tem como ? por parametro ?
-
(Resolvido) Executa programa externo e não aguardar que feche
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Dentro da Thread eu poderia colocar para abrir um programa externo ? não sabia disso.... Não vou aguardar retorno....era isso mesmo Jhonas, obrigado. Vlw Jhonas e Maciel....funcionando 100% -
(Resolvido) Executa programa externo e não aguardar que feche
uma questão postou robinhocne Delphi, Kylix
Tenho uma rotina que vou executar um programa externo, porém não posso ficar esperando ele ser fechado para executar outro processo...como faço ? -
Está dando algum erro ? Está chamando o relatório como ?
-
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
acho que dessa maneira mesmo que você falou no final vai ser melhor, vou criar um campo de data de integração(timestamp), caso não tenha essa data ele não foi enviando, nas tabelas eu já tenho a data de cadastro(timestamp) que é registrado quando o registro é inserido, então quando a data de cadastro for maior que a data de integração ele deve atualizar o registro....isso dá para separar os sql que vai retornar, nesse caso vou ver para gerar os insert's e update's em lotes que vai ser mais rapido.... De qualquer forma, vou tentar pedir ajuda da Embarcadero para descobrir como funciona esses componentes.... Jhonas agradeço a atenção, sei que o tópico tomou rumo diferente do iniciado, mas realmente estava desesperado em como solucionar.... -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Obrigado Jhonas, 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. Então...fiz o seguinte, instalei o Tokyo e testei e dá os mesmos erros, utilizando o mode dmAlwaysInsert tanto o MoveSQLWriter e DataSetWriter funciona, porém quando estou usando o MoveSQLWriter e mudo o mode para dmAppendUpdate ele dá erro de [Firedac][Phys]-609.Key fields are not defined. e quando mudo para o DataSetWriter ele dá erro de: [Firedac][Comp][DM]-608.Undefined source field or expression for destination field [%s] Estive pesquisando sobre o dmAppendUpdate e ele: Para anexar e atualizar dados, o conjunto de dados de destino deve representar uma tabela existente e deve ter um índice definido que permita que os registros sejam correspondidos. Se os campos de índice primário forem usados para correspondência, os registros com campos de índice no dataset de destino que correspondem aos registros de campos de índice no conjunto de dados de origem são substituídos pelos dados de origem. Caso contrário, os dados do conjunto de dados de origem são anexados ao conjunto de dados de destino. Durante as operações de anexação e atualização, o BDE converte os dados em tipos e tamanhos de dados apropriados para o conjunto de dados de destino, se necessário. Criei os indices nas duas tabelas e mesmo assim está dando erro, creio que eu esteja fazendo alguma coisa errada, estou anexando o teste que estou fazendo com um banco firebird mesmo onde tento jogar dados da tabela bancos para etl_bancos só para teste. https://www.4shared.com/zip/JpKijal8ca/ETL.html CREATE TABLE BANCOS ( CODIGO INTEGER, BANCO VARCHAR(20) ) ; CREATE INDEX BANCOS_CODIGO_IDX ON BANCOS (CODIGO) ; CREATE TABLE ETL_BANCOS ( CODIGO INTEGER, NOME VARCHAR(20) ) ; CREATE INDEX ETL_BANCOS_CODIGO_IDX ON ETL_BANCOS (CODIGO) ; //criei o campo nome do banco diferente de proprosito para ver o mapeamento de campos trabalhando corretamente. Me ajuda, por favor. -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Ok, vou ver.... Jhonas....uma opnião por favor, qual seria o melhor metodo para sincronizar dados, na verdade vou consultar dados da base SQLServer e fazer insert/update no PostGre, agora saber quando atualizar ou inserir ai terei que consultar se o registro houve alteração a todo insert ? -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
é estou sem saida....fazer o insert estou conseguindo mas o AppendUpdate não, ele dá erro de key fields are not defined, mas eu defini.... -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Então....peguei uma tabela que é iguais de ambos lados....e mesmo assim tenho esse erro, veja.... http://prntscr.com/f71roo o batchmove mapeie http://prntscr.com/f71ryl e os campos coloquei na tabela http://prntscr.com/f71s7c e mesmo assim dá o 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] '. 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 ) não tenho como fazer, porque não sei a tabela, consultando os campos vou saber o nome da tabela e por isso teria que criar em tempo de execução, mas estou tentando fazer com um memory table, que também cheguei com o mesmo erro acima; -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Jhonas me dá uma ajuda por favor..... Estou consultando a tabela com esse sql; instSql := 'SELECT column_name as nm_campo,data_type as ds_tipo '; instSql := instSql + ' FROM information_schema.columns '; instSql := instSql + ' WHERE table_name ='''+qryCamposDEPARA.FieldByName('nm_tabelapara').AsString+''''; instSql := instSql + ' order by column_name'; with dtmPSyncBack.qryPesquisar do begin Active := false; Close; sql.Clear; sql.add(instSql); open; end; while not dtmPSyncBack.qryPesquisar.Eof do begin with FDMemTable1 do begin FieldDefs.Add(dtmPSyncBack.qryPesquisar.FieldByName('nm_campo').AsString, qryCamposDEPARA.FieldByName('nm_tipopara').DataType, qryCamposDEPARA.FieldByName('nm_tipopara').Size, false); end; BatchMove.Mappings.Add; with BatchMove.Mappings do begin Items[i].SourceFieldName := dtmPSyncBack.qryPesquisar.FieldByName('nm_campo').AsString; Items[i].DestinationFieldName := dtmPSyncBack.qryPesquisar.FieldByName('nm_campo').AsString; end; i := i + 1; dtmPSyncBack.qryPesquisar.Next; end; dtmPSyncBack.qryPesquisar.close; FDMemTable1.Open; BatchMove.Execute(); Então quando executa o batchMove eu tenho esse erro ; First chance exception at $76D3A9F2. Exception class EFDException with message '[FireDAC][Comp][DM]-608. Undefined source field or expression for destination field [%s]'. -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
Não seria isso Jhonas, vou explicar melhor... Estou criando um sistema de integração, então estou criando o dinamicamente algumas configurações, como são bancos diferentes e tabelas diferentes, faço um de para e nesse de para eu tenho o select das informações que ira trazer o banco a para o banco b, porém a tabela do banco b tem uns campos á mais que não são necessários. Para fazer todo esse processo estou usando o Firedac ETL com o delphi Berlin, onde quando consulto eu tenho esses dados da imagem, coloquei o grid só para ver os campos, o primeiro grid é os registros que será enviados para outra tabela pelo BatchMove, eu liguei o BatchMove com o BatchMoveDataSetWriter e ele liguei com um table. As setas do grid b são os campos que tem na tabela b e que não mando, eu não tenho como colocar um table para cada tabela porque são vários e para ficar dinamico. Se passo assim no table table.TableName := NOMEDATABELA; table.Open; ele traz todos os campos ...... ixi agora que percebi um problema, quando faço open ele traz os dados que estão na tabela, com isso pesando.... Jhonas....como faço pelo batchmove jogar os dados, porque o teste que tinha feito eu tinha colocado um table e quando executei o proprio BatchMove se encarregou de inserir e atualizar os dados, fazer a saida do BatchMoveDataSetWriter por uma query tem como ? esquece sobre pegar os campos da query, porque já via adiantar já que ao abrir a tabela ele lista tudo... -
Criar campos no table apartir de query
pergunta respondeu ao robinhocne de robinhocne em Delphi, Kylix
então os dados estão num dataset também, mas preciso jogar para um table, para que meu wrtier do firedac etl saiba para quem jogar os dados.