Ir para conteúdo
Fórum Script Brasil

Renatosky

Membros
  • Total de itens

    39
  • Registro em

  • Última visita

Posts postados por Renatosky

  1. Boa tarde Amigos,

    Criei uma consulta no access, e inclui o comando DISTINCT para remover as duplicidades, mas ele esta se aplicando a todos os campos, sendo que preciso somente aplicar o comando DISTINCT a apenas um campo da tabela pois quando o campo ESTENT.VALUNI é diferente ele duplica. alguém tem uma solução? Abaixo segue minha consulta.

    SELECT DISTINCT CADPROMAT.CODPROMAT, CADPROMAT.DESPROMAT, ESTOQUE.QTD, ESTOQUE.VALOR, CADPROMAT.ESTMIN, CADPROMAT.ESTMAX, GRUPO.DESGRU, GRUPO.CODGRU, ESTENT.VALUNI, CADPROMAT.BOX, CADPROMAT.DGBOX
    FROM ESTENT RIGHT JOIN ((CADPROMAT INNER JOIN ESTOQUE ON CADPROMAT.CODPROMAT=ESTOQUE.CODPROMAT) INNER JOIN GRUPO ON CADPROMAT.CODGRU=GRUPO.CODGRU) ON ESTENT.CODPROMAT=ESTOQUE.CODPROMAT
    GROUP BY CADPROMAT.CODPROMAT, CADPROMAT.DESPROMAT, ESTOQUE.QTD, ESTOQUE.VALOR, CADPROMAT.ESTMIN, CADPROMAT.ESTMAX, GRUPO.DESGRU, GRUPO.CODGRU, ESTENT.VALUNI, CADPROMAT.BOX, CADPROMAT.DGBOX;

    Obrigado.

  2. O distinct nesta função é utilizado p/ resumir os resultados, sem ele os resultados seriam o triplo, e o fato de ter q contar os campos é p/ eu gravar em outro banco de dados tudo q foi encontrado dentro desta select, fiz um for e preciso saber quando parar por isso tenho q contar qtos registros foram encontrados.

    atenciosamente,

    RSA..

  3. Ola amigos, preciso contar quantos itens este select esta listando, mas parece q o count não funciona com o distinct, já fiz de tudo. Se alguém tiver alguma solução.. O banco q estou usando é o oracle 9i. valeu.

    SALDO1.Close;

    SALDO1.SQL.Clear;

    SALDO1.SQL.ADD('Select DISTINCT A.CODPROMAT,A.DESPROMAT,Sum(B.QTDVEN) AS TOTAL from');

    SALDO1.SQL.ADD('CADPROMAT A,DETNOTFISVEN B,MESFISVEN C,MESROMCAR D');

    SALDO1.SQL.ADD('where C.CODEMP=B.CODEMP AND C.CODEST=B.CODEST AND C.NUMNOTFIS=B.NUMNOTFIS AND');

    SALDO1.SQL.ADD('D.CODEMP=C.CODEMP AND D.CODEST=C.CODEST AND D.NUMROMCAR=C.NUMROMCAR AND');

    SALDO1.SQL.ADD('B.CODCLI=C.CODCLI AND B.CODPROMAT=A.CODPROMAT AND D.DATSAI='+#39+'31/12/9999'+#39+'AND');

    SALDO1.SQL.ADD('C.INDFATMAN='+#39+'N'+#39+'AND C.INDIMP='+#39+'S'+#39+'AND C.INDNOTSAI='+#39+'S'+#39+'AND');

    SALDO1.SQL.ADD('C.DATEMI<'+#39+maskedit1.text+#39+'AND C.INDRET='+#39+'N'+#39+'AND C.NUMNOTSAI='+#39+'0'+#39+'AND');

    SALDO1.SQL.ADD('C.INDCAN='+#39+'N'+#39);

    SALDO1.SQL.ADD('GROUP BY A.CODPROMAT,A.DESPROMAT,A.INDMARPRO');

    SALDO1.SQL.ADD('HAVING A.INDMARPRO='+#39+'S'+#39);

    SALDO1.Open;

  4. Ola amigos, estou aqui de novo com o mesmo problema mas agora vou mostrar detalhadamente como esta meu projeto e colocarei o link p/ quem quiser baixar e testar..

    Na minha dll os codigos do meu form é o seguinte:

    unit UTESTE;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TTESTE = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Edit4: TEdit;
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
      procedure ShowSRF005( vApplicaton : Pointer);
    
    var
      TESTE: TTESTE;
      vOldApplication : TApplication;
      OldScreen: TScreen;
    
    implementation
    
    {$R *.dfm}
    
    procedure ShowSRF005( vApplicaton : Pointer);
    begin
    Application := TApplication(vApplicaton);
    Application.CreateForm(TTESTE, TESTE);
    TESTE.Show;
    end;
    
    procedure TTESTE.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action := caFree;
    Self   := nil;
    end;
    
    Initialization
    vOldApplication := Application;
    
    Finalization
    Application := vOldApplication;
    
    end.
    e
    library SRF005;
    
    { Important note about DLL memory management: ShareMem must be the
      first unit in your library's USES clause AND your project's (select
      Project-View Source) USES clause if your DLL exports any procedures or
      functions that pass strings as parameters or function results. This
      applies to all strings passed to and from your DLL--even those that
      are nested in records and classes. ShareMem is the interface unit to
      the BORLNDMM.DLL shared memory manager, which must be deployed along
      with your DLL. To avoid using BORLNDMM.DLL, pass string information
      using PChar or ShortString parameters. }
    
    uses
      SysUtils,
      Classes,
      UTESTE in 'UTESTE.pas' {TESTE};
    
    {$R *.res}
    
    Exports
      ShowSRF005;
    end.
    No meu projeto .exe eu chamo meu form dll com esse comando:
    procedure TPrincipal.RMA1Click(Sender: TObject);
    var
      vProc : TOpenSRF005;
    begin
      vDll := LoadLibrary('SRF005.dll');
      if vDLL <> 0 then begin
        @vProc := GetProcAddress(vDll, 'ShowSRF005');
        if @vProc <> nil then begin
          vProc( Pointer(Application));
        end;
      end;
    end;

    Link do projeto: http://www.4shared.com/dir/5664434/b317bbc8/sharing.html

    Se alguém quiser o projeto me passe o e-mail q eu envio os codigos para fazer testes e tentar-mos resolver esse grande problema..

    Obrigado.

  5. O comando q eu usu p/ chamar a dll é o seguinte:

    procedure TPrincipal.ChegadaMateriaPrima1Click(Sender: TObject);
    var
      vProc : TOpenSRF002;
    begin
      vDll := LoadLibrary('SRF002.dll');
      if vDLL <> 0 then begin
        @vProc := GetProcAddress(vDll, 'ShowSRF002');
        if @vProc <> nil then begin
          vProc( Pointer(Application));
        end;
      end;
    end;

    ai esta uma tela do sistema:

    telamdichild.jpg

    se alguém quiser ver o fonte do projeto me mande um e-mail: renatosky@gmail.com

    obrigado

  6. Ola amigos,

    fiz uns testes e verifiquei ond esta o problema mas ainda não consegui resolver, eu fui na propriedade FormStyle e mudei ela p/: fsNormal, fsMDIForm e fsStayOnTop, nesses tres estilos a tecla tab funciona normalmente, mas quando eu mudo para o estilo fsMDIChild, q é o q eu preciso, a tecla tab praticamente para de funcionar, fica nula, usei todos os codigos q vocês me passaram anteriormente, mas não obtive sucesso. Se vocês tem uma ideia de q possa ser..

    Obrigado.

  7. quero usar o dbexpress novo do delphi 2007 por isso preciso dessa dll.. dbxora30.dll.
    Eu não tenho acesso daqui, mas confira o endereço que está neste tópico (ref. ActiveDelphi)

    Ola micheus,

    Obrigado pela dica mas aquela dica la eu ta tinha visto mas a dll la não sei se você reparou o nome dela é dbexpora.dll não a dbxora30.dll no tópico da pergunta esta um nome e o cara madou outra dll... mas obrigado se conseguir ela por favor me passe no meu e-mail.

    renatosky@gmail.com

    obrigado..

  8. Ola Micheus,

    meu form esta o msmo de quando estava na executavel eu apenas desbembrei ele e coloquei em dll, desde então a tecla tab na funciona, a função key preveiw esta ativada, estou usando o segunte codigo no envendo onkeypress do form:

    if key=#13 then

    begin

    key:=#0;

    Perform(Wm_NextDlgCtl,0,0);

    end;

    é normal q eu sempre usei p/ a tecla enter fazer a mesma função da tecla tab mas so isso q funciona p/ ir mudando de edit já o tab fica nulo, já tentei de tudo...

    v o q você pod fazer..

    obrigado..

    abração.

  9. fui fazer uma conexão via dbexpress no meu banco oracle, ai ele fica pedindo a dll dbxora30.dll mas não encontro essa dll em lugar algum nem no meu pc nem na internet

    se estivesse no seu micro estaria na pasta bin do delphi, e realmente voce não vai achar na internet... entretanto acho que o problema pode ser solucionado se voce fizer o download do

    dbExpress driver for Oracle, Windows version 4.20 [size 1332 Kb]

    http://www.crlab.com/dbx/download.html

    abraço

    Preciso da Dll, o ODAC quando eu compilo mas so funciona quando o delphi esta aberto esse eu já tinha usado faz tempo...

    quero usar o dbexpress novo do delphi 2007 por isso preciso dessa dll.. dbxora30.dll.

    obrigado.

  10. Ola amigos estou com um problema com minha aplicação...

    tenho um software com forms em mdi ai meu executavel ficou muito grande ai quebrei os modulos em dll, mas agora to com um problema a tecla TAB não funciona nos forms mdi filhos na dll, quando estava mo executavel funcionava agora q estao na dll, não funciona. alguém tem uma luz??

    Obrigado.

  11. Ola amigos, estou grilado de raiva com um select q estou tentando fazer no oracle pelo zeos e não to conseguindo fazer funcionar...

    o comando ta o seguinte: Modulo.MESROMCAR1.SQL.Add('Select codfortra,datsai,numromcar from mesromcar where numromcar='+#39+edit1.Text+#39);

    o campo é do tipo inteiro.. e ta retornando o seguinte erro:

    SQL Error: ORA-01455: a conversão da coluna causa overflow do tipo de dados inteiro.

    não sei mais o q fazer..

    sera q alguém tem uma luz..

    Obrigado.

    Ola Renatosky,

    faz um tempão que não mexo com oracle, tente converter o campo numero para texto ou use parametro:

    Modulo.MESROMCAR1.SQL.Add('Select codfortra,datsai,numromcar from mesromcar where to_char(numromcar)='+#39+edit1.Text+#39);
    ou
    Modulo.MESROMCAR1.SQL.Add('Select codfortra,datsai,numromcar from mesromcar where numromcar=:num);
    Modulo.MESROMCAR1.ParamByName(''num).AsInteger := StrToInt(Edit1.Text);

    Abs. Progr'amador.

    Ola amigo tudo bem..

    testei das 2 formas q você me enviou e deu o mesmo problema..

    sabe o q eu to axando q é um bug no zeos..

    no dbexpress eu faço do primeiro modo q eu coloquei e funciona, já no zeos da esse problema.

    e eu não uso o dbexpress porque ele tem um bug q nem a borland ainda não tem a solução.

    mas p/ todo caso agradeço a ajuda de todos vocês.

    abração.

×
×
  • Criar Novo...