Problema com variáveis

Delphi

25/11/2004

Olá.
Estou criando uma aplicação em Delphi7(CLX), banco de dados Interbase. O tipo de conexão é dbExpress(SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet). No meu BD preciso armazenar o valor de um código de barras (14 dígitos) em um campo. Qual seria o tipo de variável mais indicada?


Eliane Dorr

Eliane Dorr

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

25/11/2004

Variável ou tipo de campo? Se a quantidade de dígitos do código de barras for sempre 14, use CHAR.


GOSTEI 0
Eliane Dorr

Eliane Dorr

25/11/2004

Na verdade o que ocorre é o seguinte: No BD eu criei este campo como numeric(14). No sistema eu nomeei uma variável do tipo integer para armazenar este valor. Porém ocorre um erro com a seguinte mensagem:
Is not a valid integer value. :?:


GOSTEI 0
Gandalf.nho

Gandalf.nho

25/11/2004

Nesse caso, é melhor armazenar como string e não número.


GOSTEI 0
Eliane Dorr

Eliane Dorr

25/11/2004

Caros colegas, ainda não consegui resolver este problema. Não tenho muito conhecimento em Delphi, por isso lhes peço auxílio.
Eu preciso fazer um cálculo e incrementar um valor em uma variável, cujo valor será armazenado no meu banco de dados.
Eu não estou conseguindo chegar a uma conclusão. Da forma como eu fiz dá erro. Assim:
procedure TFInclusao.DBEdit5Exit(Sender: TObject);
var
  varini, varfim : Integer;
begin
  varini:=StrToInt(DBEdit5.Text);
  varfim:=(varini + StrToInt(DBEdit9.Text)) - 1;
  DMBrc.CDSIdentificaNUM_FIM.Integer:=varfim;
end;


O valor que eu digito em DBEdit5.Text corresponde a um conjunto de 14 números aleatórios. O erro que aparece ao entrar com esse número é :[color=red:3a0ae73bbc]Is not a valid integer value[/color:3a0ae73bbc]
Alguém teria alguma dica? Obrigada.


GOSTEI 0
Gandalf.nho

Gandalf.nho

25/11/2004

É pq um texto de 14 dígitos é muito grande para caber dados do tipo integer (–2147483648 a 2147483647). Tente com Int64.


GOSTEI 0
Eliane Dorr

Eliane Dorr

25/11/2004

Valeu, vou tentar!


GOSTEI 0
Eliane Dorr

Eliane Dorr

25/11/2004

Agora funcionou, muito obrigada.


GOSTEI 0
POSTAR