SQL数据库A有以下字段:裁片长,裁片宽,并数,并长,料长,宽幅,刀数,刀数,公式,单位用量
"公式"字段的内容是来之另外一个B库的.目地:
单位用量=公式(例:1/(INT(K/(W+0.375)))*(L+0.375)/36*1.03)
问题:
在"单位用量"的计算中,"公式"字段里描述的公式(1/(INT(K/(W+0.375)))*(L+0.375)/36*1.03,字母对应的字段如下面的叁数说明)在实际编程时如何将公式字段所描述字段运算的代码该如何写请叫了.叁数说明 :
L-裁片长 ,W-裁片宽 ,TN-并数,TL-并长,ML-料长,K-
宽幅,CN-刀数 INT取整,如INT(5.68)=5
"公式"字段的内容是来之另外一个B库的.目地:
单位用量=公式(例:1/(INT(K/(W+0.375)))*(L+0.375)/36*1.03)
问题:
在"单位用量"的计算中,"公式"字段里描述的公式(1/(INT(K/(W+0.375)))*(L+0.375)/36*1.03,字母对应的字段如下面的叁数说明)在实际编程时如何将公式字段所描述字段运算的代码该如何写请叫了.叁数说明 :
L-裁片长 ,W-裁片宽 ,TN-并数,TL-并长,ML-料长,K-
宽幅,CN-刀数 INT取整,如INT(5.68)=5
例如:公式 result = a+b;
那么result可能是你定义的关键字,他的功能是得到结果,他后边的是公式,那么你要定义a代表什么,b代表什么。如果不是一定需要,直接写代码算了。。能将劳动成果转换成效益才是硬道理。
1:公式字段的内容只用在单个记录录入时使用,并计算出结果.
var a,b,c,d:integer;
begin
b:=20;
c:=20;
d:=20;
edit1.text:='b+c*(c-b)';
a:=strtoint(trim(edit1.text));
edit2.text:=trim(inttostr(a));
end;
运行时提示:+不是整数型.问题出在无法识别运算符上.请问这个方法跟本就行不通呀.
select @sql='(2*3)+5+(6+7)*2'
set @sql='select '+@sql
exec (@sql)
--输出37带参数的动态sql,你可以使用存储过程sp_executeSql
--执行一个运算
--return -1:失败;运行成功返回运算结果
--demo
/*
declare @intReturn int,@chvErrMsg varchar(120)
exec @intReturn =
PrTest 10,20,@chvErrMsg
select @intReturn,@chvErrMsg
--返回值40
*/
alter proc PrTest
@intHi int,--参数1
@intWi int,--参数2
@chvErrMsg varchar(120) output--返回错误提示
as
set nocount on
begin
declare @sql Nvarchar(1024)--求解@intHi*2+@intWi
set @sql=N'select '+cast(@intHi as Nvarchar)+'*2+'+cast(@intWi as Nvarchar)
declare @intRet int
exec @intRet =
sp_executesql @sql,N'@intHi int,@intWi int',@intHi,@intWi
if @intRet=1
begin
set @chvErrMsg='sp_executeSql执行失败!'
return -1
end
end
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, MSScriptControl_TLB;type
TForm1 = class(TForm)
scJs: TScriptControl;
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
str:widestring;
begin
str:=memo1.Text; //公式
scJs.Language:='JavaScript';
memo2.Lines.Add(scJs.Eval(trim(str)));
end;end.
比如javascript