Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

etspaz

clausula check

Recommended Posts

boa tarde a todos!alguem sabe como uasr o check em uma tabela, pode postar um exemplo com check, pois tenho um trabalho para fazer e tem que checar uma possilbilidade com check+ou- issocheck(fundos>=0)nao sei como mandar executar algo com base nessa condicao , na verdade o rofessor deixou meio a desejar.desede já, muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado etspaz:Você deve estar se referindo a campos booleanos.Sua dúvida é um tanto vaga, já que não forneceu maiores detalhes do que necessita, mas creio que os exemplos abaixo poderão ajuda-lo a compreender como manipular tais tipos de campos em suas tabelas.Antes de mais nada, crie uma tabela (que chamaremos de "tblCaloteiros") contendo apenas um campo texto (denominado "Nome") e um campo booleano (denominado "Caloteiro"). Insira alguns nomes fictícios e de alguns "amigos" com os quais você já teve algum problema de dívidas pagas com atraso ou mesmo pendentes... No campo "Caloteiro" desses, assinale como "True".Crie, também, uma consulta SQL com a seguinte sintaxe:SELECT * FROM tblCaloteiros WHERE Caloteiro = TrueExperimente executar a consulta e ela retornará uma listagem com todos os caloteiros cadastrados em sua tabela. Vejamos, agora, como manipular esses campos.Na estrutura de um formulário qualquer, acrescente um botão de comando e, no evento "OnClick" desse componente, entre as expressões "Private Sub..." e "End Sub" no editor do VBA (linguagem nativa do Access), insira o código abaixo:Dim db As DatabaseDim rst As Recordset Set db = CurrentDbSet rst = db.OpenRecordset("tblCaloteiros", dbOpenDynaset)db.Execute "INSERT INTO tblCaloteiros (Nome, Caloteiro) VALUES ('Martinho Matreiro', True)"'DoCmd.OpenQuery "qryCaloteiros", , acReadOnly'db.Execute "UPDATE tblCaloteiros SET Caloteiro = False WHERE Nome = 'Martinho Matreiro'"'db.Execute "DELETE * FROM tblCaloteiros WHERE Caloteiro = True"Repare que no início de algumas das expressões há um apóstrofe ('). Ele indica que o texto a seguir é um COMENTÁRIO, sendo ignorado durante a execução do código. Na verdade, o código acima executa 4 tipos de consultas; ocorre que se elas forem executadas em cascata você não poderá acompanhar os resultados, portanto só a primeira está ativa, enquanto as demais estão "disfarçadas" de comentários.Saia do modo estrutura do formulário (salvando as alterações) e experimente clicar no botão de comando. Se tudo der certo, o código executará uma consulta acréscimo, inserindo um novo caloteiro. Feche o formulário e entre na modo "folha de dados" da tabela e comprove...Em seguida, entre novamente no editor do VBA e modifique o código, colocando um apóstrofe diante da linha iniciada por "db.Execute INSERT INTO...". Essa linha, agora, passa a ser ignorada durante a compilação, visto que é entendida como um comentário. Ao mesmo tempo, apague o apóstrofe da linha imediatamente abaixo, iniciada por "DoCmd.OpenQuery..."; salve as alterações e clique no botão de comando. Se tudo der certo, será executada uma consulta do tipo seleção.Faça isso com as demais linhas do código, de modo a executar as outras consultas e observe os resultados na tabela. A primeira insere mais um caloteiro, a segunda lista todos os caloteiros, a terceira "promove" um caloteiro à categoria de "bom pagador" e a última exclui todos os caloteiros da tabela.Espero que isso o ajude a compreender a manipulação de campos do tipo booleanos.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado spiritwlaker, pois acabou tirando uma duvida que eu tinha relacionado a campos booleanos que eu sabia que podia usar mas nao sabia como,

porem no caso do check é aquilo que o professor quer, nem ele sabe o que quer.

vou mostrar um exempo que ele usou:

 

create table conta

(nome_conta char(15) not null,

numero_conta integer not null,

...........

.............

.............

............

saldo float not null,

primary key(numero_conta),

check(fundos>=0))

 

foi deste jeito que ele mostrou, observando da para fazer uma consulta usando "where fundos>=0", no lugar deste check, correto? mas o prof. diz que ainda nao ensinou isto, então nao vai aceitar o que teoricamente eu ainda nao aprendi.

espero que tenha sido mais claro.

o curioso é que todos a quem eu perguntei alegam desconhecer este check.

valeu pela atençao http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado etspaz:A expressão "check", na verdade, é uma palavra reservada do SQL. Tenho 2 livros do assunto, mas eles apenas a mencionam sem demonstrar sua aplicação.A princípio, cheguei a imaginar que fosse uma forma de declarar campos booleanos em consultas de criação de tabelas mas, pelo visto, ela faz um tipo de verificação; no seu caso específico, presumo que verifica se o saldo do campo "fundos" não é (ou está) negativo.Quando tiver uma nova aula e seu instrutor apresentar explicações a respeito, gentileza postar para nós.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa tarde a todos, bom eu to devendo uma definição de check, desculpem a demora mas não tive tempo, ja que não tenho acesso a net em casa.

esta clausula check é realmente uma palavra reservada de sql, mas não muito usada serve como uma condição para postar um registro no banco.

Ex:

create table teste

( nome_venvedor char(20) not null,

salario float,

id_vendedor integer not null,

vendas_mes integer,

primary key(id_vendedor),

check(vendas_mes>30)(salario * 1.15))

 

neste caso se o vendedor tiver mais de 30 vendas no mes, tera uma comissao de 15% sobre seu salario.

 

create table saldo

( nome_cliente char(20) not null,

saldo float,

id_cliente integer not null,

primary key(id_cliente),

check(saldo>=0))

 

neste caso so será inserido um novo registro se o saldo nõ for negativo, aqui nao precisa definir uma ação apos o check ,pois simplesmente vai deixar inserir ou não um novo registro de acordo com a condição.

 

sou muito inesperiente, não sei nada , mas acho que usando uma query com uma condição parecida no sistema que eu desenvolver para trabalhar com este banco, tipo "where" ou outra mais especifica, seria melhor, ja que na minha visão , se mudarem as regras ,alem de ter que alterar o banco, teria que alterar os sistemas que foram projetados para usa-lo com esta regra, me corrijam por favor se eu estiver enganado.

valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado etspaz:Há cerca de 3 dias adquiri um livro de PHP quando, no capítulo voltado para SQL, deparei-me com essa "famigerada" cláusula. Numa ferramenta como o Access, considerada como RAD (Desenvolvimento Rápido de Aplicações), ela talvez até seria dispensável, mas já manipulou bancos de dados como MySQL, InterBase, Firebird, Postgre, etc.? Eles não são nada amigáveis. A interface é bastate árida; não dispõem de "assistentes" como o Access e todas as tabelas são criadas através de comandos SQL, assim como qualquer alteração em suas estruturas.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.