Ir para conteúdo
Fórum Script Brasil
  • 0

Inserindo Dados No Sql Server2005


jo_user

Pergunta

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

  • 0

Opa

Se ele é um tipo númerico não seria Integer ao invés de Float?

Integer suporta números "inteiros" exemplo: 1145

Float suporta números com baixa precisão "quebrados" exemplo: 1.145

Se o campo salário é numérico acredito que seria então

ParamByname('sal').AsInteger := StrToInt(EdtSalario.text);

Mas como nunca mexi com SQL Server e não mexo com BD talvez eu esteja errado rs

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
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 rs

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...