jo_user Postado Maio 26, 2007 Denunciar Share Postado Maio 26, 2007 Pessoal, eu estou tentando inserir dados num campo numerico no SQLServer, uso a seguinte instrução. with Qcliente do begin close; sql.clear; sql.add('insert into cliente (nome, endereco, salario'), sql.add('values (:nom, :end, :sal'), ParamByname('nom').AsString := EdtNome.text; ParamByname('end').AsString := EdtEndereco.text ; ParamByname('sal').AsFloat := StrToFloat(EdtSalario.text); ExecSql; end; O campo salário é numerico, e sempre mostra um erro ao converter o tipo de dados. Será que exite algum método de conversão para campo numérico no SqlServer? Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Maio 26, 2007 Denunciar Share Postado Maio 26, 2007 OpaSe ele é um tipo númerico não seria Integer ao invés de Float?Integer suporta números "inteiros" exemplo: 1145Float suporta números com baixa precisão "quebrados" exemplo: 1.145Se o campo salário é numérico acredito que seria entãoParamByname('sal').AsInteger := StrToInt(EdtSalario.text);Mas como nunca mexi com SQL Server e não mexo com BD talvez eu esteja errado rsabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 26, 2007 Denunciar Share Postado Maio 26, 2007 Pessoal, eu estou tentando inserir dados num campo numerico no SQLServer, uso a seguinte instrução.with Qcliente do begin close; sql.clear; sql.add('insert into cliente (nome, endereco, salario'), sql.add('values (:nom, :end, :sal'), ParamByname('nom').AsString := EdtNome.text; ParamByname('end').AsString := EdtEndereco.text; ParamByname('sal').AsFloat := StrToFloat(EdtSalario.text); ExecSql; end;...jo_user, você copiou e colou aqui o código exatamente como você o tem no programa?Se a resposta for sim, então o problema reside na falta dos parenteses finais na linha do insert e do values, dentro do string do comando - não o do Delphi, é claro.Se ele é um tipo númerico não seria Integer ao invés de Float?...Mas como nunca mexi com SQL Server e não mexo com BD talvez eu esteja errado rsChurc, sinto lhe informar, mas a segunda opção é verdadeira. :rolleyes: O tipo numeric é declarado no banco de dados da seguinte forma NUMERIC(I, D). Dando uma pesquisada para me certificar (faz tempo que trabalhei com o SQLServer), verifiquei que existe também o tipo DECIMAL que, aparentemente, deve ser preferido ao primeiro:"DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade. Por exemplo, DECIMAL(8,2) armazena valores numéricos decimais variando de – 999999,99 até 999999,99"Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jo_user
Pessoal, eu estou tentando inserir dados num campo numerico no SQLServer, uso a seguinte instrução.
with Qcliente do
begin
close;
sql.clear;
sql.add('insert into cliente (nome, endereco, salario'),
sql.add('values (:nom, :end, :sal'),
ParamByname('nom').AsString := EdtNome.text;
ParamByname('end').AsString := EdtEndereco.text ;
ParamByname('sal').AsFloat := StrToFloat(EdtSalario.text);
ExecSql;
end;
O campo salário é numerico, e sempre mostra um erro ao converter o tipo de dados. Será que exite algum método de conversão para campo numérico no SqlServer?
Obrigado.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.