Ir para conteúdo
Fórum Script Brasil

Iceguy

Membros
  • Total de itens

    274
  • Registro em

  • Última visita

Tudo que Iceguy postou

  1. Stored Procedure Vê se isso ajuda
  2. Iceguy

    Duvida sobre IDE e Linguagem

    Na minha opinião, ASP.NET com Visual Studio
  3. Algo como '-- Declaração de variáveis Dim vetor(0 To 3) Dim itemVetor Dim caracter Dim itemString '-- Fim Declaração '-- Inicialização de variáveis vetor(0) = Empty vetor(1) = Empty vetor(2) = Empty vetor(3) = Empty itemVetor = 0 '-- Fim Inicialização For itemString = 1 To Len(suaString) caracter = Mid(suaString, itemString, 1) Select Case caracter Case "#", "$", "@": itemVetor = itemVetor + 1 Case Else: vetor(itemVetor) = vetor(itemVetor) & caracter End Select Next itemString
  4. Access aceita, se tu colocar usuário admin e senha x' OR 'x'='x e o cara jogar o valor direto na string da sql o invasor acessa com privilégios de admin (normalmente o pessoal coloca usuário admin) A questão é que se eu criar por exemplo um ADODB.Parameter e disser que eçe é um texto de 20 caracteres, e jogar lá dentro SQL Injection, e esse parâmetro for parte de uma consulta por exemplo, o parâmetro em si garante pra você que vai entrar texto, você não precisa dar replace num monte de coisa. Posso colocoar esse x' OR 'x'='x no campo que se o código tratar como parameter ele não funciona como injection. Acho que única falha (achei ontem) é em stored procedure que execute qualquer coisa que vier, daí mesmo como parâmeter ele zoa com tudo
  5. idade é texto? por que aspas?
  6. Pensa assim: Um cliente tem uma ou muitas campanhas, pois para cirar cliente ele precisa de no mínimo uma campanha mas se gostar pode ter muitas. Uma campanha pode ter zero ou muitos clientes, pois você pode fazer a campanha e nenhum cliente se interessar, como ela pode interessar a muitos clientes. Com isso tenho a tabela campanhas e a tabela clientes (isso a grosso modo, cada uma delas tem outras tabelas vinculadas) Como é uma assossiação de muitos para muitos, existe a necessidade de uma tabela complementar para fazer a junção das duas, podemos chamar de tabela campanhaDoCliente por exemplo, nela coloco simplesmente cod_campanha e cod_cliente, ambos integrando a chave composta. Desta forma não existem dados duplicados, pois cada cliente só pode ter uma vez cada campanha e cada campanha só pode ter uma vez um cliente. Imagino que você esteja fazendo um formulário com duas listas e aquele esquema de mover entre eles as campanhas selecionadas. Para o cliente se cadastrar você traz uma lista assim +- com as campanhas que ele pode se inscrever: SELECT cod_campanha FROM tabelaCampanha WHERE campanha NOT IN (SELECT cod_campanha FROM tabelaCampanhaDoCliente WHERE cod_cliente = codDoSeuCliente), dessa forma você tem uma lista das campanhas que aquele cliente não se cadastrou, e na lista com as campanhas já cadastradas você traz só a subselect SELECT cod_campanha FROM tabelaCampanhaDoCliente WHERE cod_cliente = codDoSeuCliente. Cada vez que mover algum campo você dá um requery (ou refresh na página, enfim...)
  7. Abre a tabela em modo de edição, seleciona os campos que você quer como chave e pressiona o ícone da chave. Caso esteja usando somente o arquivo mdb sem o ACCESS instalado, envie a consulta ALTER TABLE nomeDaTabela ADD PRIMARY KEY (campo1, campo2, campoN)
  8. Vejo muita gente fazendo umas rotinas enormes de tratamento de strings pra prevenir SQL Injection, mas eu sempre usei ADODB.Parameters e até então nunca tive problemas. ADODB.Parameters protege de SQL Injection? Se não, onde é a falha?
  9. no evento click do botão coloco algo como Dim rs As Recordset Set rs = CurrentDb().OpenRecordset("SELECT COUNT(produto) AS Quantidade FROM tabela WHERE cod = " & campoCodigo) 'Se for campo texto usar WHERE cod = '" & campoCodigo & "'" If rs.EOF And rs.BOF Then Exit Sub End If campoQuantidade = rs("Quantidade") rs.Close Set rs = Nothing
  10. é só colocar uma chave composta pelo cliente + campanha, com isso o banco não deixa entrar cadastro repetido
  11. Qual a finalidade dessa consulta? O que você quer obter como resposta?
  12. Vários usuários acessam seu sistema simultaneamente (desenvolvido em access e compartilhado em rede?) e realizam alterações nele, você quer que ao acessar um registro que já esta sendo editado você veja quando o outro usuário salvar? Acho que fica um pouco complexo fazer isso, ficar buscando os dados de x em x tempo e reescrevendo nas caixas, mas uma coisa que dá pra fazer é controle de edição, criando um campo "editando" do tipo texto na base de dados. Na interface você implementa a seguinte regra: Ao acessar o registro, verificar se o campo editando está vazio. Se vazio então escreve o nome do usuário no campo Se não vazio envia uma mensagem ao usuário que o arquivo já está sendo editado por "editando.valor" Ao sair do registro, apagar o nome do usuário do campo
  13. Que tipo de anexo? Uma foto? Aí tu coloca o Source dela como o nome do arquivo e manda dar refresh, ou algo do tipo.
  14. Eu tentei pesquisar sobre um bot de formulário web, mas não fui muito a fundo. Legal seria um programa pra fazer Dump no próprio site, seria um robô que acessa o site dos correios e pesquisa no CEP e o que o site retornar ele joga no seu programa.
  15. Acho que o pessoal confunde empresa pública com caridade, não é por ser pública que deve ser de graça, pois caso contrário todos pagariam mais impostos para manter o serviço funcionando, então os correios vendem os dados de forme que quem paga pelo serviço é quem usa.
  16. Seria basicamente um formulário com vários campos e ao dar um duplo clique no campo abre uma janelinha onde você começa a digitar algo e ele vai busando naquele campo registros que tenham aquela sequência? Se for isso, use o LIKE na sua consulta, e ao digitar ele da um refresh na consulta e mostra novamente a consulta refinada
  17. Dá pra melhorar isso: SELECT IIF(FORMAT(NOW(),'yyyy') = FORMAT(Tabela.Data, 'yyyy'), 0, (FORMAT(NOW(), 'yyyy') - FORMAT(Tabela.Data, 'yyyy'))*12) + (FORMAT(NOW(), 'mm') - FORMAT(Tabela.Data, 'mm')) & ' mêses.' AS Tempo FROM Tabela; Assim faltam os dias, o ideal é x mêses e y dias, mas agora deu meu horário aqui no trampo, mas em casa coloco a parte dos dias.
  18. coloca um campo na tabela de fechamento Salvo do tipo Sim/Não e some om a tabela de cadastro de alunos, aí no salvar muda o status do salvo pra Sim, acaba com redundância e atende ao cliente que quer essa separação
  19. Ta meio confusa a sua explicação, e quanto a tabela duplicada, tabela é coisa interna do sistema, se o cara quer pra ficar mais fácil pra sei lá quem, coloca duas telas com nomes diferentes e que faz a mesma coisa
  20. Primeiro erro: Meses_de_Vida é uma informação e não um dado, ou seja, não é necessário existir na tabela pois isso é calculado em uma consulta. Segundo erro: Tempo_Espera é o mesmo caso dos meses de vida Na hora de gerar os dados para o formulário você busca por uma consulta que calcula os meses e o tempo de espera.
  21. Iceguy

    Incrementar contador

    acho que ta errado a questão da tabela numeração, deveria haver tabela documento pois um documento tem um número sequencial não um número sequencial tem um documento, daí uma tabela documento emitido onde você coloca o código do documento e seu número sequencial. Daí você separa seu DB e sua INTERFACE e coloca nas regras de negócio que o número sequencial é gerado na gravação, ou seja, o usuário preenche todo o documento e na hora de salvar o sistema busca o próximo número livre e depois da uma msg pro usuário informando que o dado foi gravado com sucesso com o número x Com isso você busca o próximo número SELECT IIF(ISNULL(MAX(TDE.NumeroSequencial)), 0, MAX(TDE.NumeroSequencial)) + 1 AS ProximoNumeroSequencial FROM TabelaDocumentoEmitido AS TDE WHERE TDE.CodDocumento = 1;
  22. Iceguy

    Incrementar contador

    Muda o campo pra numeração automática, daí o banco coloca o valor e não o sistema. E divide em Front e Back End, daí seu sistema precisa conectar no banco, e se for multiusuário, ao gravar dados eles precisarão se conectar e enviar uma consulta e o banco gerencia isso
×
×
  • Criar Novo...