FelipeUS 0 Denunciar post Postado Agosto 29, 2007 Olá Pessoal,Estou tendo problemas para deletar um registro quando ele possui ",". Por exemplo: se o campo valor = 3,50. Ao deletar a seguinte mensagem de erro é exibida:exception class EIBInterbaseError with message 'Dynamic SQL ERROR SQL error code = -104Estou usando o tipo de dados Numeric do Interbase (Numeric(7,2)). No Delphi estou utilizando o tipo de dados Float em um TEdit.Estou sem saber como proceder... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 30, 2007 Esta fazendo o delete via SQL ou por tabela ? Compartilhar este post Link para o post Compartilhar em outros sites
FelipeUS 0 Denunciar post Postado Agosto 31, 2007 Esta fazendo o delete via SQL ou por tabela ?Como assim cara? Não sei se entendi tua pergunta... mas tentando responder... eu estou usando uma instrução SQL dentro do meu aplicativo Essa procedure recebe 3 strings e um número real que representaria o valor de um certo produto.procedure Tms.sqlDeleta(cod, des, un: string; val: real);varcodigo: integer;begin// Instrução de consulta utilizada para pegar o cod(inteiro) do campo a ser deletado queryMatSecundario.Close; queryMatSecundario.SQL.Clear;if ( (Trim(cod)<>'') OR (Trim(des)<>'') OR (Trim(un)<>'') OR ( val<> 0.0 )) then begin queryMatSecundario.SQL.Add('SELECT cod FROM MaterialSecundario where cod_matSecundario = ' + #39 + cod + #39); queryMatSecundario.SQL.Add(' OR desc_matSecundario ='+ #39 + des + #39 +' OR unid_matSecundario =' +#39 + un + #39 + ' OR val_matSecundario =' + FloatToStr(val) ); end; queryMatSecundario.Open; codigo := queryMatSecundario.FieldByName('cod').AsInteger; queryMatSecundario.SQL.Clear; queryMatSecundario.SQL.Add('DELETE FROM MaterialSecundario where cod = :codigo'); queryMatSecundario.ParamByName('codigo').AsInteger := codigo; queryMatSecundario.ExecSQL;end; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 31, 2007 O problema então deve de estar com o valor, você não pode passar com vírgula "," precisa remover e trocar por ponto, pode fazer uma função que varre o valor e muda, transformando já para string, ou então fazer um StringReplace sobre... Compartilhar este post Link para o post Compartilhar em outros sites