with DM.OraSQL1 do
begin
SQL.Text:='Insert Into YJGZ(xh,jh,sjrq,gjmc,gjgg,sjcw,gjsd) Values(:xh,:jh,:sjrq,:gjmc,:gjgg,:sjcw,:gjsd)';
ParambyName('xh').AsInteger:=xh1;
ParambyName('jh').AsString:=Trim(jh1);
ParambyName('rq').AsDate:=StrtoDate(rq1);
ParambyName('mc').AsString:=Trim(mc1);
ParambyName('gg').AsString:=Trim(gg1);
ParambyName('cw').AsString:=Trim(cw1);
ParambyName('sd').AsFloat:=sd2;
Execute;
end;其中jh,rq两个字段是关键字,连接的是Oracle数据库,上面的代码怎么能改成是一句SQL语句。
例如:
with DM.OraSQL1 do
begin
sql.text:='insert into yjgz ...';
execute;
end;
.....
还有
with DM.OraSQL1 do
begin
sql.text:='Update yjgz set ... where jh='''+jh+''' and rq='''+rq+'''';
execute;
end;
我没写过一句的,不知道是什么语法,知道的能赐教下吗?谢谢。
解决方案 »
- 关于对象传递的问题-----------大虾请帮看看
- 【重定向】使用 wininet 中的什么方法可以得到一个URL的重定向地址?
- 军用地图开发资料,大家都有试试!
- 怎样判断Panel上有子控件
- 如何将word文档转化为xml,或将xml转化为word文档
- 第三方皮膚倥作:VCLSkin問題
- 一个界面上同时存在两个焦点怎么实现?能实现吗?还有样在结果集里边进行查找?
- 结束程序
- wininet 获得网页的源代码为什么在线程里面获得不完全。
- 请问怎样改变DBGrid中字段的字体颜色?比如:DBGrid中的字段"Money",当Money大于5000时候,5000应该红色显示,小于5000则以绿色显示
- 列表字段值自动累计问题
- 怎样让ADOQuery1.next 时 不移动记录指针 也就是保持记录指针不变
with DM.OraSQL1 do begin
SQL.Text := Format('Insert Into YJGZ(xh,jh,sjrq,gjmc,gjgg,sjcw,gjsd) Valus(%d,''%s'',cdate(%s),''%s'',''%s'',''%s'',%f)', [xh1,Trim(jh1),rq1,Trim(mc1),Trim(gg1),Trim(cw1),sd2]);
Execute;
end;
上面有一处错误:cdate(%s)---->应该改为cdate(''%s'')Oracle不熟悉....CDate()可能用得不对,或许是TO_DATE()?这个楼主再确认下。
with DM.OraSQL1 do begin
SQL.Text := Format('Insert Into YJGZ(xh,jh,sjrq,gjmc,gjgg,sjcw,gjsd) Valus(%d,''%s'',to_date(''%s'',''yyyy-mm-dd''),''%s'',''%s'',''%s'',%f)', [xh1,Trim(jh1),rq1,Trim(mc1),Trim(gg1),Trim(cw1),sd2]);
Execute;
end;
{楼主短信让用Format函数改写。其实我不懂Oracle,只有照着3楼内容来改。请楼主自己测试}
{其实楼主可以网上搜一下Format函数用法,很常用的一个函数}
with DM.orasql1 do
begin
sql.text:=format('update yjgz set xh=%d,jh=''%s'',sjrq=to_date(%s),gjmc=''%s'',gjgg=''%s'',sjcw=''%s'',gjsd=%f',[xh1,Trim(jh1),sjrq1,Trim(gjmc1),Trim(gjgg1),Trim(sjcw1),gjsd2]);
execute;
end;
sjrq=to_date(%s,''yyyy-mm-dd'')
哦,楼主短信是要把这个Update句用Format函数改写SQL.Text:='Update yjgz set xh='''+xh1+''',jh='''+jh1+''',sjrq=to_date('''+sjrq1+''',''yyyy-mm-dd''),gjmc='''+gjmc1+''',gjgg='''+gjgg1+''',sjcw='''+sjcw1+''',gjsd='''+gjsd1+''' where jh='''+jh1+''' and sjrq=to_date('''+sjrq1+''',''yyyy-mm-dd'')'with DM.OraSQL1 do begin
SQL.Text := Format('Update yjgz set xh=''%s'',jh=''%s'',sjrq=to_date(''%s'',''yyyy-mm-dd''),gjmc=''%s'',gjgg=''%s'',sjcw=''%s'',gjsd=%f where jh=''%s'' and sjrq=to_date(''%s'',''yyyy-mm-dd'')', [xh1,jh1,sjrq1,gjmc1,gjgg1,sjcw1,gjsd1,jh1,sjrq1]);
Execute;
end;
是不是找不到关键字?
俺的关键字是jh,sjrq.
SQL.Text := Format('Insert Into yjgz(jh,sjrq,xh,yjgzrq,gjmc,gjgg,sjcw,gjsd) Values(''%s'',to_date(''%s'',''yyyy-mm-dd''),''%d'',to_date(''%s'',''yyyy-mm-dd''),''%s'',''%s'',''%s'',''%f'')', [Trim(jh1),sjrq1,xh1,yjgzrq1,Trim(gjmc1),Trim(gjgg1),Trim(sjcw1),gjsd1]);我面对的是ORACLE数据库,这家伙不认"只认''。
上面的语句测试通过了,谢谢,结贴了。