Ir para conteúdo
Fórum Script Brasil

Geomar Canjundo

Membros
  • Total de itens

    74
  • Registro em

  • Última visita

Posts postados por Geomar Canjundo

  1. Boas Pessoal,

    Estou com um duvida que presumo ser basico.

    Estou desenvolvendo um sistema e pela primeira vez estou usando MySQL. criei as tabelas tranquilos, aconteo seguinte.

    Tentei fazer consultas aos campo inteiro e me gerou o seguinte erros:

    SELECT * FROM VIATURAS

    where Proprietario=1; O campo proprietario é um campo (int)

    Erro: unknown Column 'Proprietario' in 'where clause'

    O mesmo acontece quando faco a consulta ao campo Pk, que são todos do tipo NOME_DO_CAMPO BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT

    Aguardo retorno

    Geomar

  2. Ola Pessoal,

    Recentemente instalei o delphi 2010 e baixei o componete ZeosDB 7 para fazer conexoes com o Bancos MySQL e Orcle e Postgres.

    Mas acontece que sempre que tento fazer a conexao ele gera um erro "None of Dynamic Libraries can be found : libmysql51.dll, libmysql50.dll, libmysql.dll";

    O mesmo sucede sempre que tento fazer a conexao com o Banco PostgreSQL.

    Aguardo a vossa Ajuda.

    Geomar...

  3. Qualquer software desenvolvido em qualquer linguagem, desde que disponibilizado também seu código-fonte pode ser entendido como software livre.

    Porém se você quiser desenvolver software de linguagem não compilada, pode desenvolver em Python.

    Os programas precisarão dos módulos do Python para rodarem, porém podem ser modificados por qualquer um e quando quiserem.

    MLeandroJr!, isso quer dizer que mesmo que eu desenvolva um Software em Delphi, mesmo que não use componente OpenSource desde que disponibilize o Código fonte é um Software Livre?

  4. Caros alguém podem me ajudar a usar o componente treeview.

    Pretendo desenvolver um cenário em que ao clicar num label, abre o no correspondente no treeview, ou seja um dos nós do me treeview é o nó Classe, mas quero que ao clicar num Label o mesmo código, se verifique a arvore a mudaça para o Nó

  5. Fala Geomar!

    Então brother, eu escrevi escrevi escrevi e no fim de tudo cheguei a conclusao de há como burlar facilmente, basta alterar a data do computador que o usuário quer logar denovo...

    Há outros meios usando Sockets, que fazem com que dois programas se comunicam em rede mas acho um tanto que complicado para isso...

    de qualquer forma, segue a minha antiga idéia

    ...

    vamos botar a cabeça pra funcionar hein hehe

    você é bem inteligente, então vou dar os passos aqui e voce faz ok?

    primeiro crie dois campos nesta mesma tabela de acessos, um para a Data e outro para a Hora

    eu não sei que banco de dados voce usa e os esquemas dos campos então não sei te dizer o tipo do campo

    um campo é referente a Data, vamos chamá-lo de "LastSeemDate" ou seja, última data visto...

    o outro campo é referente a Hora, vamos chamá-lo então de "LastSeemTime", última hora em que foi visto...

    a idéia é ter um timer da paleta System do Delphi no seu programa, na tela em que o usuário visualizará após ter logado no sistema, com o Interval para 300000 que equivale a 5 minutos, com a propriedade Enabled para True e no evento OnTimer deste timer, voce grava no banco de dados a Data e Hora atual

    se quiser aumentar ou diminuir o tempo, faça 1000 x 60 x numero de minutos

    Interval de 1000 = 1 segundo, x 60 igual a 1 minuto ou seja, para tres minutos faça na calculadora: 1000 x 60 x 3 e por ai vai, ai coloque o resultado na propriedade Interval do Timer...

    Até aqui tudo certo, tudo que este timer irá fazer é ficar atualizando estes campos com a data e hora da última vez em que o usuário foi visto

    Depois na parte em que voce checa se o usuário está logado na rede, voce tambem verifica a última data e hora que ele foi visto e compara com a data atual

    uses

    DateUtils;

    ... (seu codigo de verificar se o usuario esta logado)

    if isEmpty then

    if (LastSeemDate = Now) and (MinutesBetween(LastSeemTime, Time) <= 5) then

    O usuario esta logado else

    não esta então pode conceder acesso

    entendeu?

    porém é como falei, da pra burlar facilmente...

    espero q alguém tenha outra idéia e se surgir alguma te dou um toque!

    abrxx

    Churc,

    Do que me deu para perceber desse Post, a ideia é verificar se o usuario está logado ou não?

    Se sim, a minha ideia é saber como fazer o procedimento DesconectaUsuario dispare se eventualmente houver algo de anormal de termina com a aplicação bruscamente.

  6. nativo?

    olha eu aconselharia o ZeosLib, não é nativo masss acredito que seja um dos mais usados...

    os nativos funcionam, mas estes OpenSources estão sempre sendo trabalhados e adaptados para as necessidades das pessoas...

    Download ZeosLib - Baixe ZeosDBO

    abraxx

    Valeu Mano, mas precisaria de saber como fazer essa conexão.

    Pretendo migrar do access para um banco mais poderoso pois o access está muito lento em rede

    Aguardo seu sinal

  7. Opa

    Só uma opinião, se por acaso acontecer do sistema travar, a maquina travar e ter que reiniciar vai constar na tabela que o usuário está logado...

    portanto, o que voce pode tambem é adicionar um timer no programa que escreva a data e hora em um campo desta mesma tabela a cada x minutos exemplo

    a cada 5 minutos, ou seja, o timer com a propriedade para 300000, ele escreva no campo lastcheckh a Hora e lastcheckd o dia

    assim quando um usuario for logar e retornar que esta logado, voce faz a comparacao de dias e da ultima hora checada.... se for maior do que uns 6 minutos significa que pode ter acontecido travamento ou se o dia for maior ou igual a 1

    entendeu?

    porque vamos supor,

    Voce loga na Maquina A ok

    A maquina trava ou cai a força, ou seja, o DesconectaUtilizador não vai ser chamado

    A maquina reinicia e voce vai logar denovo...

    PAM!

    Voce já está logado! rs

    entendeu?

    espero que minha dica tenha sido útil e que eu não estou falando besteira na manhã deste feriado (ressaca) :blink:

    ahuahuauha

    abraxxx

    Churc a sua dica é útil demais cara, aliás já aconteceu num dos testes da aplicação, mas voce pode postar o código para executar essa rotina?

  8. Isto é bem simples, vou te dar um exempolo em mysql e delphi que é o que estou mais abtuado

    tabela

    id |data |Maquina |hora | status |Usuario

    1 |10/06/2009 | Servidor| 12:00:00 | 1 |William

    2 |10/06/2009 | est001 | 13:00:00 | 1 |William

    3 |10/06/2009 | est002 | 14:00:00 | 1 |William

    4 |10/06/2009 | Servidor| 15:00:00 | 0 |William

    o que eu faço na hora de entrar no sistema eu pesquisao apnas se a registro no mesmo dia com status 0 para o meu usuario assim

    Select * from TABELA where data="10/06/2006" and usuario="william" ans status=0

    este select me me retornara apenas o que esta em aperto

    id |data |Maquina |hora | status |Usuario

    4 |10/06/2009 | Servidor| 15:00:00 | 0 |William

    então saberei que no servidor estou logado no meu nome.

    caso não retorne nada não estou logado em lugar nem um.

    qualquer coisa posta ai.

    William foi exatamente da forma que fiz, e acho até que fiz de forma mais completa:

    TabAcesso

    Id, Datam, hota, status, maquina, user

    With qryacesso do

    begin

    close;

    Sql.Clear;

    Sql.Text:='select * from Tabacesso where user="geomar" order by Id';

    open;

    Last// último registo de geomar salvo na tabela

    If Isempty then

    begin

    ConcedeAcesso //procedimento que criei

    SalvaDadosEmAcesso;

    end

    else

    If TabacessoStatus.Text='sim' then

    begin

    Showmessage('A sessão do utilizador está aberta em, '+ TabAcessomaquina.text)

    Abort;

    end

    else

    begin

    ConcedeAcesso;

    SalvaDadosEmAcesso;

    end;

    end;

    e está a funcionar perfeitamente, e quando tiver de sair criei um procedimento Desconectautilizador o Evento Onclose do FormPrincipal.

    Valeu,

    Qualquer dica é só apitar

    Abraços!

  9. Isto vai do que você quiser fazer se voce criar uma tabela como sugeri você automaticamente terá um log de acesso.

    caso queira usar a propia tabela de usuario funcionará perfeitamente tb, você só não terá o log de acesso, mais sem problemas.

    até mais abraço.

    Criando uma outra tabela, caso o usuario log no sistema varias vezes num dia, como saberei como o faria para o sistema me dar a maquina atual?

  10. Amigo para pegar o nome local da maqui é esta funcão abaixo

    function NomeComputador : String;

    var

    lpBuffer : PChar;

    nSize : DWord;

    const Buff_Size = MAX_COMPUTERNAME_LENGTH + 1;

    begin

    nSize := Buff_Size;

    lpBuffer := StrAlloc(Buff_Size);

    GetComputerName(lpBuffer,nSize);

    Result := tiramascara(String(lpBuffer));

    StrDispose(lpBuffer);

    end;

    agora para fazer oque você esta querendo o ideal é criar uma tabela acesso_sistema.

    quando o usuario logar você salva nesta tabela a data hora minuto segundo que ele logou o nome da maquina e o nome ou codigo do usuario esta tabela deverá conter o campo status onde 0 será logado e 1 será não logado, ao fechar o sistema você deve muda o status do registro para 1.

    toda vez que o usuario tentar acessar o sistema você faz uma busca na base de dados pegando o dia atual e verificando se tem status 0 se tiver é so mostrar a menssagem você esta logado na maqina TAL.

    imagino que isso resolva seu problema.

    qualquer duvida estamos aqui para te ajudar.

    Viva William, Valeu.

    Obrigado pela ajuda e disponibilidade.

    Vou seguir o que você me sugeriu já tinha isso na cabeça só a minha dúvida será:

    Eu já tenho uma Tabela Usuário, relaciono-a com uma Tabela_Acesso ou posso fazer isso mesmo na Tabela Usuário?

  11. Olá Como faço para saber o nome de uma máquina em Rede?

    Ou seja a quero impedir que usuário aceda ao sistema em duas máquinas em simultâneo e a ideia é que se isso acontecer, o sistema envie a mensagem

    ("o usuário já está logado na máquina nome da máquina")

    Aguardo ajudas

    Geomar

  12. Tenho as seguintes tabelas em SQL:

    create table ator (

    codator char(3) not null,

    nomeartistico varchar(40) not null,

    nomereal numeric(40) not null,

    nacionalidade varchar(20) not null,

    sexo char(1) not null,

    idade integer not null,

    indicacaooscar integer not null,

    oscar integer not null,

    primary key (codator)

    );

    create table filme (

    codfilme char(3) not null,

    nomefilme varchar(40) not null,

    anofilme numeric(4) not null,

    orçamento numeric(15) not null,

    tempo numeric(2) not null,

    primary key (codfilme)

    );

    create table personagem (

    codfilme char(3) not null,

    codator char(3) not null,

    personagem varchar(40) not null,

    cache numeric(15) not null,

    foreign key (codfilme) references filme,

    foreign key (codator) references ator

    );

    As tabelas já estão todas carregadas!

    Como eu faço para obter a seguinte consulta: nome dos filmes em que Jim Carrey atua?

    Ajudem por favor!

    Select * from Filmes Where Codfilme =all(Select * from Personagem Where Codator="CódigodoJimmyCarey");

  13. Olá Pessoal.

    Estou com dúvida ao montar uma query aqui.

    É o seguinte:

    Preciso selecionar todos os registros da tabela filiado onde o "id_filiado" não esteja cadastrado em uma outra tabela chamada "quadros".Ou seja,selecionar todos os filiados que não estejam cadastrados na tabela quadros.

    Não consigo fazer este relacionamento,alguém pode me ajudar ?

    select f.id_filiado, nome_filiado, titulo_eleitor_numero, status_filiado, c.uf, c.nome_cidade

    from filiado f, cidade c where f.id_filiado <> ( select q.id_filiado from quadros q )

    A lógica do select é algo acima, mas é claro que a query acima não está funcional,rsrsrs.

    Alguém pode me auxiliar neste select ?

    Obrigado

    Abraços

    EDITADO

    Consegui fazer aqui, era mais simples do que eu pensava,rsrsrs

    select f.id_filiado, q.id_filiado, nome_filiado, titulo_eleitor_numero, status_filiado

    from filiado f, quadros q where f.id_filiado <> q.id_filiado;

    Obrigado

    Silva Henry,

    Tenta o seguinte código:

    Select * from filiado Where Id_filiado <>all(Select * from Quadros)

    Teste e diga alguma coisa.

    Abraço

    Geomar Canjundo

×
×
  • Criar Novo...