delphi中的params相关问题

yang511yang 2007-10-18 04:54:23
var
Per_Area_PotMax:array[1..2,1..AREAMAX] of BYTE=((30,35,36),(36,35,30));//每区最大槽数
ROOMNO:Integer=1;//厂房号1或2

procedure InsertPotNoToSetValueTable(Qry:TQuery);
var
i,j:Integer;
begin
with Qry do begin
SQL.Clear;
SQL.Add('Insert Into PotSetValueTable'+IntToStr(RoomNo)+' (PotNo) Values (:P)');
Params[0].AsInteger:=RoomNo*1000;
ExecSQL;
for i:=1 to AreaMax do begin
for j:=1 to Per_Area_PotMax[RoomNo,i] do begin
Params[0].AsInteger:=((RoomNo-1)*AreaMax+i)*100+j;
ExecSQL;
end;
end;
end;
end;
请问以下两句如何理解?
SQL.Add('Insert Into PotSetValueTable'+IntToStr(RoomNo)+' (PotNo) Values (:P)');
Params[0].AsInteger:=RoomNo*1000;
:p什么意思?Params[0]指什么内容?
...全文
364 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zeronux 2010-11-23
  • 打赏
  • 举报
回复
在ADOConnection的beforeconnection中用Params咱们运行时出现错误啊?请指教,目的想做一个密码登陆数据库的界面
SDLCY 2007-10-24
  • 打赏
  • 举报
回复
用汉字做参数值时,不需要多长的字符,几个字也会丢失,
我在用存储过程时遇到过,
但是直接用 insert into .....这样的语句时没有出现过。
所以后来再用存储过程时只要是参数中有汉字 ,
都不敢用参数了,
改成直接用字符串 exec 存储过程 +'''字符串''''
polly_110 2007-10-23
  • 打赏
  • 举报
回复
to: luxuewei5214
真的会出现吗?我还没有遇见过,一般是多长的字符串才会出现啊?
鐵蛋 2007-10-22
  • 打赏
  • 举报
回复
你要明白Params是一个数组!里面又很多项,表示你的参数的顺序
jzinfo 2007-10-19
  • 打赏
  • 举报
回复
也可以 Parameters.parambyname('p').value:=参数值
指定对参数赋值
luxuewei5214 2007-10-19
  • 打赏
  • 举报
回复
但是,用这个参数传比较长的中文,可能会丢失部分字符哦
yang511yang 2007-10-18
  • 打赏
  • 举报
回复
OK!谢谢两位的解释!
boblaw 2007-10-18
  • 打赏
  • 举报
回复
這是delphi特色的參數聲明和賦值
boblaw 2007-10-18
  • 打赏
  • 举报
回复
:P指參數,Params[0]指的是SQL的第一個參數,即:P

2,497

社区成员

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

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