deio 0 Denunciar post Postado Janeiro 10, 2008 ola todos, tenho um codigo para criar indices em runtime, toda vez q ele termina aparece uma mensagem de erro, mas o codigo funciona mesmo assim, entaum gostaria de saber como eu faço para cancelar a mensagem de erro, fazer com q ela naum apareça? Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Iron 0 Denunciar post Postado Janeiro 10, 2008 Deio post seu código p/ a gente poder analisar melhor, antes disso coloque um break point p/ você poder ver em que momento exato ocorre esse erro. Como você disse ele faz o procedimento mais em algum lugar ele esta retornando o erro. Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Janeiro 10, 2008 Estou usando um componente chamado TDBF, q abre database do tipo dbf.... Começa aqui, nessa parte naum tem erro, soh to colocando pra saber oq tem no combobox1 e 2 : procedure TForm1.Button5Click(Sender: TObject); var x:integer; begin opendialog1.Execute; dbf1.TableName := opendialog1.FileName;//escolhe o arquivo do dbf q eh pra abrir dbf1.Active:= true;//ativa a tabela combobox2.Items := dbf1.FieldDefList;//faz com q o combobox receba o nome das colunas da tabela for x:=0 to ComboBox2.Items.Count - 1 do ComboBox1.Items.Add(ComboBox2.Items[x] + '.NDX');// preenche o combobox1 com o nome dos indices end; a mensagem de erro ocorre aki : procedure TForm1.Button1Click(Sender: TObject); var x: integer; begin dbf1.Close; dbf1.Exclusive := true; dbf1.Open; for x:=0 to ComboBox2.Items.Count -1 do dbf1.AddIndex( combobox2.Items.Strings[x]+'.NDX', dbf1.FieldDefs[x].name,[]);//comando para criar os indices, com o nome da coluna mais a extensão .NDX , arquivo de indice dbf1.OpenIndexFile(dbf1.FilePathFull + combobox1.Items.Strings[x]);// salva o indice para naum precisar ficar criando o tempo todo end; Naum sei se vai ajudar mas aqui ta o codigo do arquivo do componente indicando qndo aparece a mensagem : procedure TIndexFile.CreateIndex(FieldDesc, TagName: string; Options: TIndexOptions); var tagNo: Integer; fieldType: Char; TempParser: TDbfIndexParser; begin // check if we have exclusive access to table TDbfFile(FDbfFile).CheckExclusiveAccess; // parse index expression; if it cannot be parsed, why bother making index? TempParser := TDbfIndexParser.Create(FDbfFile); try TempParser.ParseExpression(FieldDesc); // check if result type is correct fieldType := 'C'; case TempParser.ResultType of etString:; { default set above to suppress delphi warning } etInteger, etLargeInt, etFloat: fieldType := 'N'; else raise EDbfError.Create(STRING_INVALID_INDEX_TYPE);//essa linha aqui abre a mensagem de erro, faz parte do componente, entaum acho melhor naum mexer nele se naum pode bugar o componente.... end; finally TempParser.Free; end; a mensagem de erro diz q soh e valido indices do tipo string e float, ou algo do genero.... Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Janeiro 10, 2008 O que esta havendo é uma excessão e não um erro, você pode optar por desabilitar no delphi essas excessões, mas será de forma geral, todas excessões que ocorrerem sem paralizar o projeto, não será exibida. Menu Tools/debugger options/language exceptions/stop on delphi exceptions esperto ter ajudado.. abs Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Janeiro 10, 2008 naum parou o programa, mas a mensagem ainda aparece... Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Janeiro 10, 2008 Não apresentará o erro, faça o teste.. abs Compartilhar este post Link para o post Compartilhar em outros sites
deio 0 Denunciar post Postado Janeiro 10, 2008 Não apresentará o erro, faça o teste.. abs testei varias vezes e ainda apareceu o erro, soh naum parou o programa.... naum teria algum comando do tipo : do not showmessage error ... Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Janeiro 11, 2008 Desconheço amigo.. Mas tenta colocar o parte do código onde ocorre o erro, dentro de um try, talvez isto o ajude a desviar da mensagem de erro. abs Compartilhar este post Link para o post Compartilhar em outros sites