Checagem nao fnciona
pessoal, tenho aqui uma checagem que nao funciona... na verdade era para ela checar se determinado livro ja está emprestado, porem ela passa batido... o código nao está checando.
segue abaixo os códigos referentes ao problema:
************************************************************
campos das tabelas relacionadas
--------------------------------------
codigo que nao está funcionando
--------------------------------------
segue abaixo os códigos referentes ao problema:
************************************************************
campos das tabelas relacionadas
--------------------------------------
CREATE TABLE LIVROS ( CODIGO NUMERIC(15, 2) NOT NULL, NOME VARCHAR(100) NOT NULL, QUANTIDADE VARCHAR(50), TIPO VARCHAR(50), AUTOR VARCHAR(100), SINOPSE VARCHAR(1000), EDITORA VARCHAR(50), EXEMPLAR VARCHAR(50), VOLUME VARCHAR(50), EDICAO VARCHAR(50), ANO_EDICAO VARCHAR(50), LOCAL VARCHAR(50), AREA VARCHAR(50), STATUS VARCHAR(50), RESERVA VARCHAR(50), CONSTRAINT PK_LIVROS PRIMARY KEY (CODIGO) );
create TABLE RESERVA ( CODIGO NUMERIC(15, 2) NOT NULL, COD_ALUNO NUMERIC(15, 2) NOT NULL, COD_PROF NUMERIC(15, 2) NOT NULL, COD_LIVRONUMERIC(15, 2) NOT NULL, TIPO_EMPRVARCHAR(50), TIPO_CONSVARCHAR(50), DATA_RES TIMESTAMP, DATA_RET TIMESTAMP, CONSTRAINT PK_RESERVA PRIMARY KEY (CODIGO) );
codigo que nao está funcionando
--------------------------------------
//seleciona o material que está sendo reservado na tabela livros DM.Tbl_Livros.SelectSQL.Clear; DM.Tbl_Livros.SelectSQL.Add(´Select * From Livros ´+´Where CODIGO Like:Consulta ´+´Order By CODIGO´); DM.Tbl_Livros.Params[0].AsString; DM.Tbl_Livros.ParamByName(´Consulta´).AsString :=´´+´¬´+Edit_CodigoLivro.Text+´¬´; DM.Tbl_Livros.Close; DM.Tbl_Livros.Open; //verifica se o material ja está reservado DM.Tbl_Reservas.SelectSQL.Clear; DM.Tbl_Reservas.SelectSQL.Add(´Select * From RESERVA ´+´Where COD_LIVRO Like:Consulta ´+´Order By COD_LIVRO´); DM.Tbl_Reservas.Params[0].AsString; DM.Tbl_Reservas.ParamByName(´Consulta´).AsString :=´´+´¬´+Edit_CodigoLivro.Text+´¬´; DM.Tbl_Reservas.Close; DM.Tbl_Reservas.Open; //verifica se a quantidade de reservas excede a quantidade do material cadastrado if DM.Tbl_Reservas.RecordCount >= DM.Tbl_LivrosQUANTIDADE.AsInteger then begin ShowMessage(´Todos os volumes desse material ja estão reservados´); Dm.Tbl_Reservas.Cancel; end else begin end;
Mahdak
Curtidas 0
Respostas
Mahdak
04/08/2005
sobe
GOSTEI 0
Gandalf.nho
04/08/2005
Que componente de acesso vc usa? Outra coisa, essa estrutura do seu banco tá um bocado estranha, ex: Quantidade como string ao invés de número, campos chave como numeric ao invés de Integer (ou string), ano da edição com um tamanho exagerado de campo, talvez precisaria dar uma melhorada nessa estrutura primeiro (campos muito grandes, tipos de dados inadequados, etc).
GOSTEI 0
Rafael Santana
04/08/2005
amigo, vamos mudar tudo isto.. faça assim
CREATE TABLE LIVROS
(
CODIGO INTEGER NOT NULL,
NOME VARCHAR(100) NOT NULL,
QUANTIDADE VARCHAR(50),
TIPO VARCHAR(50),
AUTOR VARCHAR(100),
SINOPSE VARCHAR(1000),
EDITORA VARCHAR(50),
EXEMPLAR VARCHAR(50),
VOLUME VARCHAR(50),
EDICAO VARCHAR(50),
ANO_EDICAO VARCHAR(50),
LOCAL VARCHAR(50),
AREA VARCHAR(50),
STATUS VARCHAR(50),
RESERVA VARCHAR(50),
CONSTRAINT PK_LIVROS PRIMARY KEY (CODIGO)
);
create TABLE RESERVA (
CODIGO INTEGER NOT NULL,
COD_ALUNO INTEGER NOT NULL,
COD_PROF INTEGER NOT NULL,
COD_LIVRO INTEGER NOT NULL,
TIPO_EMPR VARCHAR(50),
TIPO_CONS VARCHAR(50),
DATA_RES TIMESTAMP,
DATA_RET TIMESTAMP,
CONSTRAINT PK_RESERVA PRIMARY KEY (CODIGO)
);
//seleciona o material que está sendo reservado na tabela livros
DM.Tbl_Livros.Close;
DM.Tbl_Livros.SelectSQL.Clear;
DM.Tbl_Livros.SelectSQL.Add(´Select * From Livros´);
DM.Tbl_Livros.SelectSQL.Add(´Where CODIGO Like:Consulta´);
DM.Tbl_Livros.SelectSQL.Add(´Order By CODIGO´); DM.Tbl_Livros.ParamByName.Value:=´¬´+Edit_CodigoLivro.Text+´¬´;
DM.Tbl_Livros.Open;
//verifica se o material ja está reservado
DM.Tbl_Reservas.Close;
DM.Tbl_Reservas.SelectSQL.Clear;
DM.Tbl_Reservas.SelectSQL.Add(´Select * From RESERVA´);
DM.Tbl_Reservas.SelectSQL.Add( ´Where COD_LIVRO Like :Consulta1´);
DM.Tbl_Reservas.SelectSQL.Add( ´Order By COD_LIVRO´);
DM.Tbl_Reservas.ParamsByName:=´¬´+Edit_CodigoLivro.Text+´¬´;
DM.Tbl_Reservas.Open;
//verifica se a quantidade de reservas excede a quantidade do material cadastrado
if DM.Tbl_Reservas.RecordCount >= DM.Tbl_LivrosQUANTIDADE.AsInteger then
begin
ShowMessage(´Todos os volumes desse material ja estão reservados´);
Dm.Tbl_Reservas.Cancel;
end
else
begin
end;
CREATE TABLE LIVROS
(
CODIGO INTEGER NOT NULL,
NOME VARCHAR(100) NOT NULL,
QUANTIDADE VARCHAR(50),
TIPO VARCHAR(50),
AUTOR VARCHAR(100),
SINOPSE VARCHAR(1000),
EDITORA VARCHAR(50),
EXEMPLAR VARCHAR(50),
VOLUME VARCHAR(50),
EDICAO VARCHAR(50),
ANO_EDICAO VARCHAR(50),
LOCAL VARCHAR(50),
AREA VARCHAR(50),
STATUS VARCHAR(50),
RESERVA VARCHAR(50),
CONSTRAINT PK_LIVROS PRIMARY KEY (CODIGO)
);
create TABLE RESERVA (
CODIGO INTEGER NOT NULL,
COD_ALUNO INTEGER NOT NULL,
COD_PROF INTEGER NOT NULL,
COD_LIVRO INTEGER NOT NULL,
TIPO_EMPR VARCHAR(50),
TIPO_CONS VARCHAR(50),
DATA_RES TIMESTAMP,
DATA_RET TIMESTAMP,
CONSTRAINT PK_RESERVA PRIMARY KEY (CODIGO)
);
//seleciona o material que está sendo reservado na tabela livros
DM.Tbl_Livros.Close;
DM.Tbl_Livros.SelectSQL.Clear;
DM.Tbl_Livros.SelectSQL.Add(´Select * From Livros´);
DM.Tbl_Livros.SelectSQL.Add(´Where CODIGO Like:Consulta´);
DM.Tbl_Livros.SelectSQL.Add(´Order By CODIGO´); DM.Tbl_Livros.ParamByName.Value:=´¬´+Edit_CodigoLivro.Text+´¬´;
DM.Tbl_Livros.Open;
//verifica se o material ja está reservado
DM.Tbl_Reservas.Close;
DM.Tbl_Reservas.SelectSQL.Clear;
DM.Tbl_Reservas.SelectSQL.Add(´Select * From RESERVA´);
DM.Tbl_Reservas.SelectSQL.Add( ´Where COD_LIVRO Like :Consulta1´);
DM.Tbl_Reservas.SelectSQL.Add( ´Order By COD_LIVRO´);
DM.Tbl_Reservas.ParamsByName:=´¬´+Edit_CodigoLivro.Text+´¬´;
DM.Tbl_Reservas.Open;
//verifica se a quantidade de reservas excede a quantidade do material cadastrado
if DM.Tbl_Reservas.RecordCount >= DM.Tbl_LivrosQUANTIDADE.AsInteger then
begin
ShowMessage(´Todos os volumes desse material ja estão reservados´);
Dm.Tbl_Reservas.Cancel;
end
else
begin
end;
GOSTEI 0
Mahdak
04/08/2005
beleza rafael, brigadao ae brother, deu certo aqui
GOSTEI 0