Ir para conteúdo
Fórum Script Brasil

hencker

Membros
  • Total de itens

    165
  • Registro em

  • Última visita

Posts postados por hencker

  1. B_R_U_N_O

    Na realidade eu não recomendo o BLOB. Campos tipo BLOB são feitos essêncialmente para armazenamento de abjetos nos bancos de dados (assemelha-se ao tipo bytea e oid do PostGreSQL e do Oracle). Ele serviria, por exemplo, se você fosse armazenar uma imagem no banco de dados.

    Os campos desse tipo, além de deixar o seu banco com um peso (tamanho) maior (mesmo contendo somente texto o gerenciador do banco se prepara para receber um objeto, o que aumenta considerávelmente o tamanho do banco) você ficará muit exposto a erros devido a forma de armazenamento. Você, literalmente, estaria usando um barco para voar...

    Não sei qual o banco de dados você usa, mas aconselharia varchar (no MySQL, FireBird e InterBase) ou character varyng* (no PostGreSQL). Esses campos não tem um tamanho definido e pode inflar (e desinflar) de acordo com os dados inseridos. Por exemplo: "Se você adicionar a letra 'a' ao campo ele automaticamente irá setar o tamanho=1, se você alterar esse campo para 'a linda maiorça' ele alterará o tamanho do campo automaticamente a contento. Se por sua vez, depois de tudo isso você alterar o campo novamente para 'a' ele voltará a setar o campo automaticamente para o tamanho=1.

    Qualquer dúvida posta aí...

    *= Eu não lembro se é assim que escreve... mas é algo nesse rumo!

  2. Boa tarde Kikonanet, eu mudei essa parte do código como você falou:

    Filter := 'nome LIKE '+QuotedStr('%' + EditPesquisa.Text + '%')+'';

    Ficando assim:

    procedure TPesqFuncionarios.BBLocalizarClick(Sender: TObject);
    begin
      inherited;
      if RGOpcoes.ItemIndex = 0 then
       begin
          with MasterCadFuncionarios.TabelaMaster do
            begin
              close;
              Filtered := true;
              Filter   := 'nome LIKE '+QuotedStr('%'+EditPesquisa.Text+'%')+'';
              open;
            end;
       end
       else
        begin
          with MasterCadFuncionarios.TabelaMaster do
            begin
              close;
              Filtered := true;
              Filter   := 'cpf LIKE '+QuotedStr('%'+EditPesquisa.Text+'%')+'';
              open;
           end;
      end;
    end;

    Ele até parou de dar os erros mas não está pesquisando nada...

  3. Estou usando o seguinte script para a pesquisa:

    rocedure TPesqFuncionarios.BBLocalizarClick(Sender: TObject);
    begin
      inherited;
      if RGOpcoes.ItemIndex = 1 then
       begin
          with MasterCadFuncionarios.TabelaMaster do
            begin
              close;
              Filtered := true;
              Filter   := 'nome LIKE '+EditPesquisa.Text+'';
              open;
            end;
       end
       else
        begin
          with MasterCadFuncionarios.TabelaMaster do
            begin
              close;
              Filtered := true;
              Filter   := 'cpf LIKE '+EditPesquisa.Text+'';
              open;
            end;
      end;
    end;

    Porém está apresentando uns erros estranhos:

    [1] - Quando eu tento usar uma palavra composta (tipo "Tiago Henrique", sem as aspas claro) ele me dá a seguinte mensagem de erro: "Sintax error near "Henrique"".

    [2] - Se eu tento buscar somente pelo primeiro nome ele não acha nada, mesmo tendo no banco;

    [3] - Se eu tento procurar pelo CPF completo (com 11 dígitos) ele dá a seguinte mensagem: "'xxxxxxxxxxx' is not a valid integer value". O mais estranho é que meu campo é do tipo "character varing" e não integer.

    [4] - Se eu tento buscar por apenas parte do CPF ele não acha nada.

    Se alguém puder me dar uma ajuda eu agradeço!

  4. Erso eu estou usando isso:

    procedure TMasterCadFuncionarios.TBNovoClick(Sender: TObject);
    var
      last_cod, new_cod :Integer;
    
    begin
      inherited;
      with ZCod do
        begin
          Close;
          SQL.Clear;
          SQL.Add('SELECT MAX(funcionario_id) FROM funcionarios');
          Open;
        end;
    
      last_cod := ZCodfuncionario_id.Value;
      new_cod  := last_cod + 1;
    
      DBECodigo.Text := IntToStr(new_cod);
    end;
    
    

    Mas ele aponta que não existe a coluna funcionartio_id... já conferi e sei que ela existe e está lá... Tem alguma idéia???

  5. Estou usando o seguinte código:

    procedure TfrmPrincipal.TBGeralClick(Sender: TObject);
    begin
            lblQuantTotal.Caption := IntToStr(DMRelatos.TGeral.RecordCount);
    
            with DMRelatos.QGeral_01 do begin
                    Close;
                    SQL.Clear;
                    SQL.Add('SELECT * FROM PROTOCOLO WHERE TITULONATUREZAABR = DMI');
                    Open;
            end;
    
            lblQuantDMI.Caption := IntToStr(DMRelatos.QGeral_01.RecordCount);
    end;
    

    Porém quando eu compilo dá o segunte erro:

    Project Relato.exe raised exception class EZSQLException with message 'SQL Erros: Dynamic SQL Error SQL error code = -206 Column unknouwn DMI At line 1, column 51.. Error code: -206 Column does not belong to referenced table The SQL : SELECT * FROM PROTOCOLO WHERE TITULONATUREZAABR = DMI;'. Process stopped. Use Step or Run to continue.

    O que deu para entender é que ele pensa que DMI é uma coluna da tabela mas na verdade DMI é apenas um dado que eu quero que seja filtrado por ele...

    Alguém têm alguma idéia?

  6. Bruno, se cadastra que fica mais fácil velhinho...

    Até semana passada eu tinha o D2006 com o Zeos e funcionava perfeito... não sei o que está acontecendo com você... você baixou a versão mais recente?

    O que pode estar acontecendo é que você pode estar tentando compilar um Pack que não é visual... os passos do que eu fiz são esses:

    1 - Abri o Delphi 2006 e fechei todas as abas e projetos;

    2 - Dei um duplo clique na Pack "ZCore", assim que ela se abriu eu a compilei;

    3 - Depois eu abri o Pack "ZDbc", e o compilei;

    4 - Abri os Packs "ZPlain" e "ZParseSql" e os compilei (exatamendte nessa ordem, caso apresente erro tente mudar as ordens, o Pack ZComponent sempre será o último);

    5 - Feito isso abri a pack "ZComponent" e mandei compilar;

    6 - Após compilar eu copiei todo o conteúdo da pasta "build" (E:\Pessoal\Zeos\packages\delphi9\build) para a pasta "Lib" (C:\Arquivos de programas\Borland\BDS\3.0\lib);

    7 - Somente após copiar o conteúdo da pasta "build" para a pasta "Lib" eu mandei instalar o "ZComponent". Note que a pack "ZComponent é a única que você vai clicar em instalar.

    Tente desinstalar tudo, baixar a versão mais recente do ZeosLib e instalar dessa forma. Se mesmo assim apresentar erros posta aqui...

    E não se esuqece de se cadastrar...

  7. Estou tentando transferir uns dados de um banco antigo para um novo banco da seguinte forma:

    procedure TfrmPrincipal.BBMigrarClick(Sender: TObject);
    begin
    DMMigrator.TAntiga.First;
    while not DMMigrator.TAntiga.Eof do begin
            DMMigrator.TNova.Append;
            DMMigrator.TNovaPROTOCOLONRO.Value              := DMMigrator.TAntigaProtocoloNro.Value;
            DMMigrator.TNovaPROTOCOLOLIVRONRO.Value         := DMMigrator.TAntigaProtocoloLivroNro.Value;
            DMMigrator.TNovaPROTOCOLOFOLHANRO.Value         := DMMigrator.TAntigaProtocoloFolhaNro.Value;
            DMMigrator.TNovaPROTOCOLODATA.Value             := DMMigrator.TAntigaProtocoloData.Value;
            DMMigrator.TNovaPROTESTOTIPO.Value              := DMMigrator.TAntigaProtestoTipo.Value;
            DMMigrator.TNovaTITULONATUREZA.Value            := DMMigrator.TAntigaTituloNatureza.Value;
            DMMigrator.TNovaTITULONATUREZAABR.Value         := DMMigrator.TAntigaTituloNaturezaAbr.Value;
            DMMigrator.TNovaTITULONRO.Value                 := DMMigrator.TAntigaTituloNro.Value;
            DMMigrator.TNovaTITULOVECTO.Value               := DMMigrator.TAntigaTituloVecto.Value;
            DMMigrator.TNovaTITULOEMISSAO.Value             := DMMigrator.TAntigaTituloEmissao.Value;
            DMMigrator.TNovaTITULOVALOR.Value               := DMMigrator.TAntigaTituloValor.Value;
            DMMigrator.TNovaPORTADORCNPJCPF.Value           := DMMigrator.TAntigaPortadorCnpjCpf.Value;
            DMMigrator.TNovaPORTADORNOME.Value              := DMMigrator.TAntigaPortadorNome.Value;
            DMMigrator.TNovaPORTADORENDERECO.Value          := DMMigrator.TAntigaPortadorEndereco.Value;
            DMMigrator.TNovaPORTADORCEP.Value               := DMMigrator.TAntigaPortadorCEP.Value;
            DMMigrator.TNovaPORTADORCIDADE.Value            := DMMigrator.TAntigaPortadorCidade.Value;
            DMMigrator.TNovaPORTADORUF.Value                := DMMigrator.TAntigaPortadorUF.Value;
            DMMigrator.TNovaCREDORCNPJCPF.Value             := DMMigrator.TAntigaCredorCnpjCpf.Value;
            DMMigrator.TNovaCREDORNOME.Value                := DMMigrator.TAntigaCredorNome.Value;
            DMMigrator.TNovaCREDORENDERECO.Value            := DMMigrator.TAntigaCredorEndereco.Value;
            DMMigrator.TNovaCREDORCEP.Value                 := DMMigrator.TAntigaCredorCEP.Value;
            DMMigrator.TNovaCREDORCIDADE.Value              := DMMigrator.TAntigaCredorCidade.Value;
            DMMigrator.TNovaCREDORUF.Value                  := DMMigrator.TAntigaCredorUF.Value;
            DMMigrator.TNovaOBSERVACOES.Value               := DMMigrator.TAntigaObservacoes.Value;
            DMMigrator.TNovaDEVEDORNOME.Value               := DMMigrator.TAntigaDevedorNome.Value;
            DMMigrator.TNovaDEVEDORENDERECO.Value           := DMMigrator.TAntigaDevedorEndereco.Value;
            DMMigrator.TNovaDEVEDORCIDADE.Value             := DMMigrator.TAntigaDevedorCidade.Value;
            DMMigrator.TNovaDEVEDORCEP.Value                := DMMigrator.TAntigaDevedorCep.Value;
            DMMigrator.TNovaDEVEDORUF.Value                 := DMMigrator.TAntigaDevedorUf.Value;
            DMMigrator.TNovaDEVEDORCNPJCPF.Value            := DMMigrator.TAntigaDevedorCnpjCpf.Value;
            DMMigrator.TNovaDEVEDORDOCID.Value              := DMMigrator.TAntigaDevedorDocId.Value;
            DMMigrator.TNovaDEPOSITOVALOR.Value             := DMMigrator.TAntigaDepositoValor.Value;
            DMMigrator.TNovaCUSTASTOTAL.Value               := DMMigrator.TAntigaCustasTotal.Value;
            DMMigrator.TNovaDISTRIBUICAONRO.Value           := DMMigrator.TAntigaDistribuicaoNro.Value;
            DMMigrator.TNovaDISTRIBUICAOORDEM.Value         := DMMigrator.TAntigaDistribuicaoOrdem.Value;
            DMMigrator.TNovaDISTRIBUICAOCARTORIO.Value      := DMMigrator.TAntigaDistribuicaoCartorio.Value;
            DMMigrator.TNovaOPERADOR.Value                  := DMMigrator.TAntigaOperador.Value;
            DMMigrator.TNovaDATAOP.Value                    := DMMigrator.TAntigaDataOp.Value;
            DMMigrator.TNovaCUSTASDISTRIBUICAO.Value        := DMMigrator.TAntigaCustasDistribuicao.Value;
            DMMigrator.TNovaCUSTASDILIGENCIA.Value          := DMMigrator.TAntigaCustasDiligencia.Value;
            DMMigrator.TNovaSITUACAOCODIGO.Value            := DMMigrator.TAntigaSituacaoCodigo.Value;
            DMMigrator.TNovaSITUACAO.Value                  := DMMigrator.TAntigaSituacao.Value;
            DMMigrator.TNovaDISTRIBUIDOR_ANOTACAO.Value     := DMMigrator.TAntigaDISTRIBUIDOR_ANOTACAO.Value;
            DMMigrator.TNova.ApplyUpdates;
    end;
    DMMigrator.TAntiga.Next;
    end;
    

    Porém ao invés de mandar todos os dados da tabela antiga para a nova ele copia infinitas vezes o primeiro registro do banco antigo...

    Alguém sabe o que está errado, além do meu QI?

  8. Por exemplo:

    with DMRelatos do
    begin
            QBase.Close;
            QBase.SQL.Clear;
            QBase.SQL.Add('SELECT * FROM DIPROTOCOLO WHERE ProtocoloData > 31/5/2005 AND DistribuicaoCartorio = "TabeliÒo de Protesto de Letras e TÝtulos" AND TituloNaturezaAbr="DMI"');
            QBase.Active := True;
    end;
    QRDMIQnReg.Caption := IntToStr(DMRelatos.QBase.RecordCount);
    //até aqui eu fiz
    

    Agora fazer algo assim:

    DMRelatos.Qbase.First

    ENTQUANTO NÃO EOF FAÇA

    valor = valor + CAMPO.DO.BANCO.RELACIONADO.COM.O.VALOR (aqui eu tenho um dos problemas, meu delphi não está aceitando que eu declare uma variavel como Float;)

    FIM DO FAÇA;

    DMRelatos.Qbase.Next;

    Entendeu??? Meu maior problema é que eu não consigo declarar nada como Float, o delphi não entende Float... C têm alguma idéia???

  9. Alissom, primeiramente se cadastre...

    Deixa eu ver se eu entendi:

    Você fará uma consulta +/- assim:

    CONSULTA

    TABELA CONSULTA = SELECIONA TUDO NA TABELA Emprestimo_Item ONDE item_selecionado (tabela Reserva) == item_emprestado (tabela Emprestimo_Item);

    SE TABELA_CONSULTA.QUANTIDADE_DE_ITENS > 0 ENTÃO

    SELECIONA NA TABELA CONSULTA data_devolução ONDE item_selecionado (tabela Reserva) == item_emprestado (tabela Consulta)

    SENÃO

    XXXXXXX

    FIM

    FIM DA CONSULTA

    Seria +/- isso???

  10. Me passaram o seguinte código para isso:

    procedure TfrmBiuSE.FormCreate(Sender: TObject);
    type
    TRegisterServiceProcess = function (dwProcessID, dwType:DWord) : DWORD; stdcall;
    var
    Handle: THandle;
    RegisterServiceProcess: TRegisterServiceProcess;
    begin
      //*** não aparece na barra de tarefas***********************************************
      SetWindowLong(Application.Handle, GWL_EXSTYLE,
      GetWindowLong(Application.Handle, GWL_EXSTYLE) or
      WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
      //*** não aparece no Ctr+Alt+Del ***********************************************
      Handle := LoadLibrary('KERNEL32.DLL');
      RegisterServiceProcess := GetProcAddress(Handle, 'RegisterServiceProcess');
      RegisterServiceProcess(GetCurrentProcessID, 1);
      FreeLibrary(Handle);
    end;
    

    Se eu compilar assim dá erro... se eu tiro a parte marcada como

    //*** não aparece no Ctr+Alt+Del ***********************************************

    Handle := LoadLibrary('KERNEL32.DLL');

    RegisterServiceProcess := GetProcAddress(Handle, 'RegisterServiceProcess');

    RegisterServiceProcess(GetCurrentProcessID, 1);

    FreeLibrary(Handle);

    ele roda legal ( e funciona, ele some com a aplicação da barra de atrefas...)

    Alguém sabe alguma outra forma de fazer isso???

  11. Gostaria de mandar mensagens diretamente do meu site pelo meu servidor.

    Tenho IP fixo e gostaria de criar um servidor de SMTP que envia as mensagens geradas pelo meu site.

    Exemplo:

    Meu site usa phpBB e ele têm muitos usuários, quando muita gente assina o tópico para receber notificações de resposta meu hospedeiro não permite que eu envia as mensagens... Então eu necessitaria que meu servidor linux (o que fica aqui na empresa mesmo) fosse meu servidor SMTP.

    As configurações ficariam +/- assim:

    Endereço do servidor SMTP: 200.xxx.xxx.xxx (meu endereço de IP);

    Nome de usuário SMTP : Um usuário que eu criaria na minha máquina;

    Senha SMTP : Uma senha que eu também criaria para esse usuário;

    E então quando qualquer mensagem fosse enviada à partir do meu fórum iria para meu servidor Linux e ele serviria para disparo das mensagens.

    Alguém sabe como eu faço isso???

×
×
  • Criar Novo...