Checagem nao fnciona

Delphi

04/08/2005

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
--------------------------------------
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

Mahdak

Curtidas 0

Respostas

Mahdak

Mahdak

04/08/2005

sobe


GOSTEI 0
Gandalf.nho

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

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;


GOSTEI 0
Mahdak

Mahdak

04/08/2005

beleza rafael, brigadao ae brother, deu certo aqui


GOSTEI 0
POSTAR