一个关于数据库的简单问题  求教!!!!!!11

taojiayu 2006-11-02 01:57:17
就是一个简单的更新操作
执行到下面语句时就会弹出:EoleException 错误,在=附近有语法错误
我就是看不出来,高手指点一下!!!!!1111

str_Sql[0]:='undate DataSample_Avg'+timestr+' set 室内干球='+format('%f',[Data[0]]);
str_sql[1]:=' where 采集时间=''总平均值'' ';
RequestExe(str_sql);
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
todouwang 2006-11-03
  • 打赏
  • 举报
回复
undate->update
taojiayu 2006-11-02
  • 打赏
  • 举报
回复
谢谢各位
已经解决了
taojiayu 2006-11-02
  • 打赏
  • 举报
回复
没人帮解决
taojiayu 2006-11-02
  • 打赏
  • 举报
回复
我具体是这样的: 用上面的 '''总平均值''' 好象不对么
Data[0]:=Qry2.Fields[1].Asfloat;

setLength(Str_sql,2);
str_Sql[0]:='undate DataSample_Avg'+timestr+' set 室内干球='+format('%f',[Data[0]]);
str_sql[1]:=' where 采集时间=''总平均值'' ';
RequestExe(str_sql);

procedure TDataStore.RequestExe(Str: array of string);
var
Qry: TADOQuery;
i: Integer;
begin
try
Qry:=TADOQuery.Create(nil);
Qry.Connection:=ADOConnection;
Qry.Active:=false;
Qry.sql.clear;

for i:=0 to High(str) do
begin
Qry.sql.add(Str[i]);
end;

try
// Qry.prepared:=true;
Qry.ExecSQL;
// Qry.Prepared;
//Qry.active:=true;
except
on EDatabaseError do ShowMessage('数据库访问出错');
end;

Finally
Qry.prepared:=false;
Qry.free;
end;
end;

早起晚睡 2006-11-02
  • 打赏
  • 举报
回复
SQL语句中字符串还有时间 都要用''包含起来的
zhengsq007 2006-11-02
  • 打赏
  • 举报
回复
恩,建议使用ado连接
Ayx_hys 2006-11-02
  • 打赏
  • 举报
回复
阿三 2006-11-02
  • 打赏
  • 举报
回复
你用啥连接的数据库,是ADO还是BDE
where 采集时间=''总平均值'' 这里的就不对,应该 '''总平均值''' 这样才能出现引号

建议你这样写:
with adoquery1 do
begin
close;
SQL.text := 'undate DataSample_Avg'+timestr+' set 室内干球=:S where 采集时间='''总平均值'''';
parameters.parambyname('s') := 你要更改的内容;
ExecSql;
end;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧