Ir para conteúdo

POWERED BY:

Arquivado

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

bdexterholland

Access-ADO: Tamanho do campo

Recommended Posts

Fiz um programinha para controlar empréstimos de CD (executável e banco de dados)

 

 

 

Quando faz um cadastro de mídia (num sei se em outros cadastros isto também ocorre) se você coloca mais de 15 chars no título, o sistema retorna uma mensagem falando que o texto não cabe no campo da tabela no banco de dados.

 

No banco de dados, o campo título tem comprimento máximo de 60 chars e o campo título na janela de cadastro também.

 

 

 

SQL de inserção:

 

INSERT INTO Midia (Titulo,Artista,Editora,Genero,Paginas,Avaliacao,Tipo) VALUES (:ptitulo,:partista,:peditora,:pgenero,:ppaginas,:pavaliacao,:ptipo)

 

 

Botão confirmar na janela de cadastro de mídia

 

procedure Tfrmcadastro.btncadastrarClick(Sender: TObject);begin  if (cdtitulo.Text<>'') or (dvdtitulo.Text<>'') or (livrotitulo.Text<>'') then	begin	  case ComboBox1.ItemIndex of		0:begin		  with DataModule1.qrymidia do			begin			  Close;			  parameters.ParamByName('ptitulo').value:= trim(cdtitulo.text);			  Parameters.ParamByName('partista').value:=cdartista.text;			  Parameters.ParamByName('pgenero').value:=cdgenero.text;			  Parameters.ParamByName('pavaliacao').value:=cdtitulo.text;			  Parameters.ParamByName('ptipo').value:=combobox1.ItemIndex;			  ExecSQL;			end;		end;		1:begin			with DataModule1.qrymidia do			 begin			   Close;			   Parameters.ParamByName('ptitulo').Value:= dvdtitulo.text;			   Parameters.ParamByName('partista').value:=dvdartista.text;			   Parameters.ParamByName('pgenero').value:=dvdgenero.text;			   Parameters.ParamByName('pavaliacao').value:=dvdtitulo.text;			   Parameters.ParamByName('ptipo').value:=combobox1.ItemIndex;			   ExecSQL;			 end;		end;		2:begin		  with DataModule1.qrymidia do			begin			  try				Close;				Parameters.ParamByName('ptitulo').Value:= livrotitulo.text;				Parameters.ParamByName('partista').value:=livroautor.text;				Parameters.ParamByName('peditora').Value:=livroeditora.text;				Parameters.ParamByName('ppaginas').Value:=strtoint(livropagina.Text);				Parameters.ParamByName('pgenero').value:=livrogenero.text;				Parameters.ParamByName('pavaliacao').value:=cdtitulo.text;				Parameters.ParamByName('ptipo').value:=combobox1.ItemIndex;				ExecSQL;			  except				on EConvertError do showmessage ('Verifique os dados lançados');			  end;			end;		end;	  end;	  close;	  btnlimpar.Click;	  ComboBox1.SetFocus;	end  else	Showmessage ('Por favor, não deixe o campo '+chr(39)+'Título'+chr(39)+' em branco...');end;

 

 

Alguém pode me ajudar?

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você acessar as propriedades deste paramêtro na sua query, e olhar a propriedade Size, ela esta com 0 ou outro valor ?No caso se tentar executar um insert diretamente no BD funciona ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No size do parametro tá 510... http://forum.imasters.com.br/public/style_emoticons/default/cry.gif Isso é realmente bom...

Mas vai até a Query e clica em Parameters, deve de aparecer todos os que você utiliza... depois seleciona o parâmetro, vai mostrar as propriedades dele...

alterei a proriedade size para 60 e mesmo assim continua....---------------------------Debugger Exception Notification---------------------------Project VTX.exe raised exception class EOleException with message 'O campo é muito pequeno para aceitar a quantidade de dados que você tentou adicionar. Tente inserir ou colar menos dados'. Process stopped. Use Step or Run to continue.---------------------------OK Help ---------------------------A mensagem é essa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando o fonte do seu primeiro post com a sua base de dados, acho que você fez uma pequena troca...

 

Veja a linha:

Parameters.ParamByName('pavaliacao').value:=cdtitulo.text;
No caso você passa a informação do titulo, sendo que pela base de dados o campo avaliação tem tamanho somente de 15 caracteres, gerando assim o erro...

No caso você deve de ter um outro edit de avaliação para passar no local desta linha....

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.