Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde!!!Imaginem que preciso deixar a opção do usuário criar uma fórmula .. e vou gravar isso no banco de dados ..quando trouxer essa informação preciso que o sistema execute a string .. e naum a trate como um texto normal ..existe alguma função pra isso ???ou entaum imaginem que o usuário vai escolher numa ComboBox um tipo de operação ( +, -, * ou /) e ai eu uso isso pra calcular o valor entre 2 números digitados em TextBoxs.... (naum pode ser por Select Case ... teria que ser uma função que transforme string em comando)
Bom eu até acho que posso te ajudar. Mas não conheço nenhuma função que execute isso no vb.Cara na hora de salvar a formula voce poderia salvar mais ou menos assim(@val1@ * (@val2@ + @val3@)) / @val4@assim depois voce da um replace das variaveis nos numeros e voce poderia fazer isso procedure na base de dados.ex:no oracle:declarex nvarchar2(15);resultado number;beginx := '(2 / 6) + 8'; -- aqui vai sua formulaexecute immediate 'select ' || x || ' from dual' into resultado; dbms_output.put_line(resultado);end;acho que isso pode de dar alguma idéia
Pois é Adriano ...Desse jeito fica mais facil mesmo. Executei a expressao no banco de dados tambem, só que no SQL, dai é só fazer por exemplo (SELECT 3 + 2 AS Resultado) que ele retornará 5 ......Mas não sei se voce conhece, tem um modo de fazer isso usando aquela dll FSO do VB .... eu não lembro agora como que usa e se realmente funciona .... sabe ???? Vou ver se consigo lembrar aqui e qualquer coisa eu posto
realmente não conheço nada no vb.mas dai abre espaço para outras formas tambem, ja ouviu falar em expresão matemática fixa e pos-fixa? então, se voce converter para pos-fixa pode executar numero por numero, operador por operador, que tambem funciona, mais dai tem que lembra das aulas da facu, na net tem exemplos de como fazer, mas sinceramente, cara faz uma procedure que calcula e traz o resultado.tipo assim Select fn_CalculaFormula(tb_formula.campoFormula) from tb_formuladai você cria uma função fn_CalculaFormula baseado no exemplo que te mostrei antes.
Ola...Então, até existe um modo que utiliza uma API do Windows, só que só funciona não funciona em Run Time (o porque até hoje eu não sei) .....Existe um outro modo, usando uma outra DLL do Windows que agora não lembro qual é, vou ver se acho aqui, mas acho que não funciona muito bem porque acabei não usando....Ja tive que usar algo parecido, mas infelizmente tive que quebrar a string e ir montando 'na mão' as expressoes, deu um trabalho e tanto.......