Jump to content
Fórum Script Brasil

Frega

Membros
  • Posts

    69
  • Joined

  • Last visited

Everything posted by Frega

  1. hm, não consegui fazer, porque o nome da columa é uma variavel, e não consigo fazer um "AS (select tipo from varacab where ??)"
  2. Boa tarde pessoal, tenho uma tabela assim: código | tipo T200 | T T300 | T A200 | A C900 | C código = varchar(10) e tipo = varchar(4) quero fazer uma query que me retorne o valor da seguinte forma para fazer um relatório: tipo T | Tipo A | Tipo C T200 | A200 | C900 T300 para cada tipo existente deve se ter uma Coluna... ps: só pode haver 5 tipos diferentes, o que significa que a query retornaria no maximo 5 colunas, mas cada tipo pode ter códigos ilimitados... como posso fazer isso?
  3. baixei e usei o RemObjects 6.0, agora esotu na duvida de qual usar pontos fortes e fracos de cada um, que pude notar em poucos minutos de uso: RemObjects + uma gama de possibilidades, a mais basica usa um server HTML para transferir os dados do servidor <-> cliente + varias ferramentas adicionais (teste de velocidade do servidor) etc... - é pago, 30 dias trial, componente de terceiros - depois de adicionar uma nova procedure no arquivo tidl deve ser gerado o .pas com as assinaturas novo, assim substituindo e apagando o velho, então o processo de adicionar as assinaturas ao PAS deve ser feita manualmente, ou senão você perde tudo que tinha no .PAS antigo... RDM, datasnap -as procedures são como stored-procedures, para chama-la no cliente você deve por ex: Conexao..nome_da_procedure, e na hora de compilar o delphi não verifica se de fato essas procedures ou funções estão corretas (ou até mesmo se existem) ...
  4. deixar no DM fica mais organizado, mas a conexão ao MSSQL sendo assim é single thread, ou seja, só executa uma coisa de cada vez, e se uma aplicação cliente requisitar uma query complexa e lenta?? os outros clientes vão ficar "congelados" ou como fica...?? ps: o win. 7 já está na versão RTM =) edit, alguém conhece o Rem Objects?
  5. Valeu pela ajuda Jhonas, deu pra tirar umas ideias, mas esse site ai acho que ensina a usar o DCOM no windows 98 ou XP, porque no win 7 não tem algumas configuraçoes que o cara falou lá! mas agora surgiu outra duvida sobre esse DCOM, isso fica a parte nos registros do windows e etc pelo que deu pra entender, mas se eu botar o Aplicativo do Servidor para rodar em outro pc, ele vai registrar tudo certo? vai funcionar?? se eu tentar conectar vai dar...? edit... devo deixar a conexão ao banco MSSQL no RDM (que vai criar uma cópia para cada cliente) ou devo fazer um DM (onde todos vão usar a mesma conexão)? quais as vantagens de deixar no DM?
  6. Bom dia pessoal, estou estudando um novo projeto aqui e pensei em faze-lo multi-camadas, porém não achei muita informação na internet, qualquer dica que me derem já vem bem .... a unica coisa que é: adicionar o Remote Data Module ao servidor e conectar a ele via COMConnection (da aba Datasnap client) porem não achei opçoes de portas no COMConnection e também não consegui conectar o cliente ao servidor quando o cliente é rodado de outra maquina que não seja a mesma do servidor... (firewall desabilitado) alguém sabe o que pode ser? devo mesmo usar o COMConnection? existe outro componente para fazer esta ligação? Ps: utilizo o D2009 Obrigado pela atenção, []s Frega
  7. Frega

    NF-e?

    pessoal, dei uma lida mas não entendi como funciona esse novo negocio da nota fiscal eletronica, alguém pode fazer um resumo para mim? :unsure: e, existe um componente de NFe para o delphi ? (free)
  8. O Jeito mais facil, e ainda traduzindo as opçoes do messageDlg para portugues (para ficar Yes= Sim No=Não e Cancel=Cancelar) var mensagem : TForm; begin //MOSTRA O MESSAGEDLG (TRADUZIDO PARA PORTUGES) Mensagem:=CreateMessageDialog(' MENSAGEM ',MtConfirmation,[MbYes,MbNo]); Mensagem.Caption:='TITULO'; TButton(Mensagem.FindComponent('Yes')).Caption:='Sim'; TButton(Mensagem.FindComponent('No')).Caption:='Não'; Mensagem.ShowModal; if Mensagem.ModalResult=MrYes then begin Arquivar; DMConsultas.CDs_ListaMorador.Delete; DMConsultas.CDs_ListaMorador.ApplyUpdates(-1); DMConsultas.CDs_ListaMorador.Refresh; exit; end; if Mensagem.ModalResult=MrNo then begin DMConsultas.CDs_ListaMorador.Delete; DMConsultas.CDs_ListaMorador.ApplyUpdates(-1); DMConsultas.CDs_ListaMorador.Refresh; exit; end; end; para adicionar o cancelar as opçoes seria só alterar MtConfirmation,[MbYes,MbNo] para MtConfirmation,[MbYes,MbNo,MBCancel]
  9. Obrigado pela ajuda, até a parte de criar a query dentro do thread e carregar no dbgrid já tinha conseguido, a minha duvida era como fazer o gauge/progressbar do jeito certo... agora consegui fazer tudo, mas restou uma duvida... Na hora de dar Refresh ou editar um registro da tabela, emfim, qualquer coisa que envolva a query, como acesso ela? tendo em vista que o nome do thread é QryThread e o nome da query é MQ, posso simpismente do form acessar, QryThread.MQ.refresh? como devo fazer? meu teste c/ progressbar: nas variaveis publicas do thread: procedure syncQry; var MC:TMyConnection; MQ:TMyQuery; no Execute do Thread: MC:=TMyConnection.Create(nil); //Cria a conexão, cada query deve ter sua conexão usando Thread MC.Password:='xxxxxx'; MC.Username:='yyyyyy'; MC.Port:=3306; MC.Server:='...'; MC.Database:='...'; MC.Open; MQ:=TMyQuery.Create(nil); //cria a query MQ.Connection:=MC; MQ.SQL.Text:='select * from r_clientes'; MQ.ReadOnly:=true; MQ.Open; Synchronize(syncQry); o evento da procedure SyncQry: cxProgressBar1.Properties.Max:=MQ.RecordCount; while not MQ.Eof do begin cxProgressBar1.Position:=MQ.RecNo; Application.ProcessMessages; MQ.Next; end; cxProgressBar1.Visible:=false; MQ.First; //retorna para o primeiro registro, para não ficar no fim do dbgrid Form1.Datasource.dataset:=mq;(Clientes é o nome do Form, o dbGrid já esta ligado ao DataSource, por fim, eu só uso esse comando para ligar o datasource a query, então os dados são carregados) esta correto desse jeito? como melhorar/ aumentar o desempenho? Abraço
  10. Boa tarde, estou começando a usar threads, porem não estou conseguindo criar uma query e carregar os dados no DBGrid a partir de um Thread, procurei na net mas há poucos exemplos e dicas de como usar thread com query.... se tivesse como fazer em um unico thread também queria adicionar um progressBar baseado no RecordCount da query... Se alguém tiver exemplos ou algo que possa ajudar seria de grande ajuda, porque eu não sai do chão até agora... Obrigado pela ajuda edit.. no DBGrid esta funcionando, o problema é no cxGrid (QuantumGrid da devexpress), carregando os dados nele é que ocorre os erros
  11. Boa tarde pessoal, tenho um sistema pronto já usando banco de dados MySQL, porem estou aderindo a ideia de usar threads sómente agora... estou querendo começar a usar as querys e algumas coisas com thread, incluindo as conexoes ao banco de dados... chegei a dar uma estudada no TThread do delphi, porém a produtividade é meio baixa, é uma coisa demorada... então procurando no delphi achei o TIdThreadComponent, bem mais facil e rapido de usar... só que não achei muita coisa relacionada sobre este componente na net... alguém conhece, já usou? quais são as desvantagens? estou em busca de dicas, se alguém conheçe um jeito melhor, etc... preciso de algo que seja eficaz e que não seja muito demorado para se fazer...
  12. a unica internet que abrange todos os lugares são das operadoras de celular, Claro, Vivo etc... onde o celular pegar, você vai ter internet, nem que seja bem limitada mas funcionara... em lugares com 3g você consegue pegar a velocidade integral do plano.. em lugares com GSM/CDMA/etc... você consegue conectar a uma velocidade mais limitada de +-10-15kb/s download e 5kb/s de upload (essas são as médias da minha região, que não tem 3G)
  13. já tentou conectar com ZeosLib? ele tem suporte para postgre tambem, nunca tive problemas até hoje!
  14. acho que vou ter que fazer asim mesmo Transformar currency 180,0648 para string, cortar as casas decimais, e depois passar de string para currency denovo, já com o valor arredondado, 180,06 isso é uma gambiarra mas funciona, o ideal seria conseguir cortar ou zerar as duas ultimas casas decimais 180,0648 preservando o valor em Currency ao invez de ter de que fazer Currency->String->Currency
  15. para poupar serivço pode fazer asim: procedure Atualizar(Sender:TObject); var VarCod : string; begin if Sender=btnProximo1 then VarCod:=DBEdit1.text; if Sender=btnProximo2 then VarCod:=DBEdit2.text; if Sender=btnProximo3 then VarCod:=DBEdit3.text; with QueryCadProForn do begin Close; SQL.Clear; SQL.Add('SELECT FORFAN FROM FINAFOR.dbf'); SQL.Add('WHERE FORCOD = :pCOD'); ParambyName('pCOD').AsString := VarCod; Open; if not(IsEmpty) then begin cboCadPro_Forn1.Text := QueryCadProForn.FieldByName('FORFAN').AsString; end; end; em cada botão de proximo ou voltar dos DBEdits com o codigo você bota o evento Atualizar(NomeDoBotão); asim quando você clicar no botão ele vai pegar o codigo do fornecedor no DBEdit e jogar na query
  16. da uma procurada, tem componentes Indy que fazem a checagem de IP, ai quando o programa abrir você manda dar um ping no servidor, se tiver resposta então, manda conectar nele, caso não volte reposta você manda conectar no banco local do notebook... são quantos usuarios que vão estar conectados ao servidor? porque essa sincronização pode dar problema por exemplo, um registro foi apagado detarde, a noite você conecta o notebook e sincroniza o servidor, o registro vai voltar... isso é uma coisa um tanto complicada a menos que seja só um usuario... mas em todos casos, existem programas que fazem isso como o "Database comparer"
  17. Boa tarde pessoal, queria saber como transformar valores currency que usam 4 casas decimais para só 2 casas, e manter o resultado como Currency tentei usar CurrencyDecimals:=2; os campos currency continuam com 4 casas, para aplicar essa propriedade ali tenho que usar Format('%m',[campoCurrency] ai ele vai transformar o Currency em duas casas decimais, porém, String; o problema é que tenho preço bruto e liquido, exemplo: preço bruto 185,00 após aplicado descontos o preço liquido que deveria ser R$180,06 fica como R$180,0648, e se tiver muita quantidade desse produto, por exemplo 20 ou 30 da uma enorme diferença: 180,06x30=R$5,401.80 180,0648x30=R$5,401.94 a diferença de 2 para 4 casas decimais chegam a R$0,15 em 30 produtos preciso que na hora de aplicar os descontos e passar para SubTotal ele calcule a quantidade X precoliquido com só duas casas !
  18. faz um teste com a variavel pra ver se ela ta funcionando... antes de Postar o registro no banco de dados adiciona o comando showmessage(variavel); e teste, se a variavel esta funcionando... poste o codigo desse cadastro para nos tambem :)
  19. Frega

    Delphi\SQL

    ahh você estava fazendo tudo numa query só?? para isso tem que usar 2 query, 1 query que vai fazer a consulta dos fornecedores e outra query que seria a do cadastro da peça... abraços
  20. o que acontece quando você tenta colocar QuotedStr(usuario)? teoricamente deveria funcionar :P
  21. Frega

    Delphi\SQL

    no OnExit do DBEdit onde o usuario digita o fornecedor você pode botar: Select cod_fornecedor from fornecedor where cod_fornecedor = '+QuotedStr(DBEditCOD_fornecedor.text) o resto é igual, caso não ache o fornecedor digitado ele vai dar a mensagem... não entendi porque você deu um select das duas tabelas , não há porque disso,
  22. já tentou rodar o comando por outro meio? por exemplo algum gerenciador de banco de dados etc..? eu tinha um problema semelhante quando eu não usava QutoedStr(EditX.text); e deixava um campo em aberto sem preencher IBQueryfiltro.SQL.Add('SELECT * FROM CADASTRO_ATENDIMENTO WHERE NUMEROATENDIMENTO = '+QuotedStr(Edit1.Text)+' AND CODIGOCLIENTE = '+QuotedStr(Edit2.Text));
  23. uso o componente Zeos, não sei se funciona igual no ADO mas no zeos todos componentes tem a propriedade Refresh no caso... ADOTable.Refresh; com isso, deveria atualizar as tabelas :)
  24. Frega

    Delphi\SQL

    não entendi sua pergunta perfeitamente, esse comando é para rodar quando tiver cadastrando a peça? para ver se o fornecedor digitado existe? e esse comando ai, roda em qual evento? se é o que eu entendi, pode tentar com INNER JOIN, Right Join, Left Join
  25. acho que o idel é por como cancelado, pois asim você tera todos os orçamentos, não ira pular nenhum numero de orçamento, e servira como futuras estatisticas (ex: % de orçamentos canceladelados em um mes... etc)
×
×
  • Create New...