Delphi+Oracle,如何使用UpdateSQL往数据库里写数据? 好象按MSSQL中的语法不行嘛,老是报:“Operation not applicable”的错误,查询了一天,没有结果,还望大家多帮帮忙…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你换成 ORACLE 的 SQL 不就可以了吗? 就是因为换了oralce 的语法而不行的呀!而且同样的语句在SQL Plus中执行无误!我真的很晕………… 把你的 SQL 帖出来,还有你的 Delphi 代码,大家帮你看看。 UpdateSQL中的语句:update BMTABLEset XH = :XH, BMID = :BMID, BMNAME = :BMNAME, FZRID = :FZRID, PZNUM = :PZNUM, OLDDATE = :OLDDATEwhere BMID = :OLD_BMIDDelphi中的代码: BMQuery.Close; BMQuery.Sql.Clear ; BMQuery.Sql.Add ('Select * from BMTable where BMID='+DepartmentNo); BMQuery.Prepare; BMQuery.open; TempBMNo:=BMQuery.fieldbyname('XH').AsInteger; BMQuery.Edit; if BMQuery.FieldByName('OldDate').AsDatetime<>CurDateTime then //如果OldDate不等于当前时间 begin BMQuery.FieldByName('OldDate').AsDatetime:=CurDateTime; BMQuery.FieldByName('PZNum').value:=1; TempXHNo:=1; end else begin TempXHNo:=BMQuery.fieldbyname('PZNum').value+1; BMQuery.fieldbyname('PZNum').value:=TempXHNo; end; try HYDatabase.StartTransaction; BMQuery.ApplyUpdates; hydATABASE.Commit; BMQuery.CommitUpdates; except HYDATABASE.Rollback; BMQuery.CancelUpdates; Result:='NULL'; BMQuery.Close; exit; end; UPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP 你可以将你的"BMQuery.Sql.Add ('Select * from BMTable where BMID='+DepartmentNo);"换成下面的试一下: BMQuery.Sql.Add ('Select * from BMTable where BMID='''+DepartmentNO+'''); 继续请教各位大神——Delphi7实现excel读取txt数据的问题~ 三层架构问题,如何捕获服务端TSQLQuery的open异常 ADO在局域网配置问题,希望大家告诉我一下 关于ACCESS的几个问题! 如何在程序中写入运行命令行?急 如何触发动态按钮的响应事件阿? 送分帖子:有没有关于托盘的例子,要完整的? 请问各位老兄,如何用程序实现web虚拟目录设置。谢谢! 跪求Delphi高手,解决项目打开的问题,安装第三方控件问题 两个数据库问题 关于stringgrid的小问题! 关于IP数据包的截取
update BMTABLE
set
XH = :XH,
BMID = :BMID,
BMNAME = :BMNAME,
FZRID = :FZRID,
PZNUM = :PZNUM,
OLDDATE = :OLDDATE
where
BMID = :OLD_BMIDDelphi中的代码:
BMQuery.Close;
BMQuery.Sql.Clear ;
BMQuery.Sql.Add ('Select * from BMTable where BMID='+DepartmentNo);
BMQuery.Prepare;
BMQuery.open;
TempBMNo:=BMQuery.fieldbyname('XH').AsInteger;
BMQuery.Edit;
if BMQuery.FieldByName('OldDate').AsDatetime<>CurDateTime then //如果OldDate不等于当前时间
begin
BMQuery.FieldByName('OldDate').AsDatetime:=CurDateTime;
BMQuery.FieldByName('PZNum').value:=1;
TempXHNo:=1;
end
else
begin
TempXHNo:=BMQuery.fieldbyname('PZNum').value+1;
BMQuery.fieldbyname('PZNum').value:=TempXHNo;
end;
try
HYDatabase.StartTransaction;
BMQuery.ApplyUpdates;
hydATABASE.Commit;
BMQuery.CommitUpdates;
except
HYDATABASE.Rollback;
BMQuery.CancelUpdates;
Result:='NULL';
BMQuery.Close;
exit;
end;
where BMID='''+DepartmentNO+''');