在一库文件里定义一个函数Add_Evaluate,其中引用库文件DAHelper的ExeSqlNoQuery函数是用来执行T-SQL语句的通用函数
Function Add_Evaluate(s1,s2,s3:string):boolean;
var
sql:string;
begin
sql:='udate 检测记录 set BCIs=BCIs+'+''''+s1+''''+','
+'BCIx=BCIx+'+''''+s2+''''+'where ID='+''''+s3+'''';
result:=DAHelper.ExeSqlNoQuery(sql);
end;
程序编译虽然正常,运行总是提示错误:“=附近有错误”,甚至把函数参数直接用数字代替运行还是提示错误,请大家帮忙改错,多谢!
Function Add_Evaluate(s1,s2,s3:string):boolean;
var
sql:string;
begin
sql:='udate 检测记录 set BCIs=BCIs+'+''''+s1+''''+','
+'BCIx=BCIx+'+''''+s2+''''+'where ID='+''''+s3+'''';
result:=DAHelper.ExeSqlNoQuery(sql);
end;
程序编译虽然正常,运行总是提示错误:“=附近有错误”,甚至把函数参数直接用数字代替运行还是提示错误,请大家帮忙改错,多谢!
access数据库的字符相加是要用&
把sql语句放在查询分析器里执行 就知道什么错误了
result:=DAHelper.ExeSqlNoQuery(sql);
前面加一句ShowMessage(sql);
运行到这里时,把sql直接拷贝到查询分析器里去执行就知道了
上面这句应该是没有问题,如果不行,请按12楼所说把语句放到查询分析器里面试试
sql:='udate 检测记录 set BCIs= '''+FloatToStr(BCIs+S1)+''','
+'BCIx = '''+FloatToStr(BCIx+S2)+'''where ID = '+s3+'';
先计算,然后将结果转化为字符串,再赋值给BCIS,BCIx.