delphi给变量赋值不成功

procedureTForm1.Button1Click(Sender:TObject);varS:string;beginclientdataset1.Close;cl... procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
begin
clientdataset1.Close;
clientdataset1.CommandText:='select pdline_name,t3.serial_number,t1.serial_number SMT_SN,out_process_time from sajet.g_sn_travel t1,sajet.sys_pdline t2,sajet.g_sn_keyparts t3 '
+'where t1.serial_number=t3.item_part_sn and t1.pdline_id=t2.pdline_id and length( item_part_sn) =12 and t1.process_id=''100037'' and '
+'t3.serial_number=:S';
clientdataset1.Params.ParamValues['S']:=trim(edit1.Text);
showmessage(clientdataset1.CommandText);
clientdataset1.Open;
展开
 我来答
bfmbfmbfm
2012-07-16 · 超过24用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:73.9万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
begin
clientdataset1.Close;
clientdataset1.CommandText:='select pdline_name,t3.serial_number,t1.serial_number SMT_SN,out_process_time from sajet.g_sn_travel t1,sajet.sys_pdline t2,sajet.g_sn_keyparts t3 '
+'where t1.serial_number=t3.item_part_sn and t1.pdline_id=t2.pdline_id and length( item_part_sn) =12 and t1.process_id=''100037'' and '
+'t3.serial_number='''+trim(edit1.Text)+'''';
showmessage(clientdataset1.CommandText);
clientdataset1.Open;
这样肯定没有问题,还利于调试
追问
有问题,变量前后加上了双引号
追答
如果serial_number是整数就把引号去掉就可以
我以为serial_number是字符型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glaciersoft
2012-07-16 · TA获得超过288个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:331万
展开全部
针对Params赋值时候,并不会马上体现在SQL语句中,而是在执行SQL的时候将这些参数一起提交给数据库,数据库执行处理这些东西,所以你见到的SQL中参数:S是没变的。通常测试这种SQL是否正确是SQL语句本身是否正确,参数类型及值是否正确
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f2b7b2a
2012-07-16 · TA获得超过702个赞
知道小有建树答主
回答量:342
采纳率:100%
帮助的人:294万
展开全部
clientdataset1.Params.ParamValues['S']:=trim(edit1.Text);
改成
clientdataset1.ParamByName('S').AsString:=trim(edit1.Text);
试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式