DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: randy522732557
今日帖子: 24
在线用户: 12
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 sxfgf (FC_FGF) ★☆☆☆☆ -
普通会员
2023/11/18 22:01:16
标题:
Delphi 11.3 win11,sql2008环境下奇怪查询的问题 浏览:543
加入我的收藏
楼主: 代码如下:
   iCKID:=strtoint(BasicInfo_storage_List.selectedID);
   sql:=' select Storage_Code,Storage_Name,Storage_FZR,fzr,Storage_FZRTel,Storage_Address,Storage_BranchID,Storage_Remarks,fzjg,Storage_SaleBill,Storage_UnifyCost  from [dbo].[QC_GetStorageMod] (:p1) ';
     //
   try
     ClientModule1.ClientDataSet1.Close;
     ClientModule1.ClientDataSet1.CommandText:=sql;
     ClientModule1.ClientDataSet1.ParamByName('p1').AsInteger:=iCKID;
     ClientModule1.ClientDataSet1.Open;
     showmessage(ClientModule1.ClientDataSet1.FieldByName('fzr').AsString);
     if ClientModule1.ClientDataSet1.RecordCount>0 then
     begin
       Edit1.Text:=ClientModule1.ClientDataSet1.FieldByName('Storage_Code').AsString;
       Edit2.Text:=ClientModule1.ClientDataSet1.FieldByName('Storage_Name').AsString;
       Edit3.Text:=ClientModule1.ClientDataSet1.FieldByName('fzr').AsString;
       Edit4.Text:=ClientModule1.ClientDataSet1.FieldByName('Storage_FZRTel').AsString;
       Edit5.Text:=ClientModule1.ClientDataSet1.FieldByName('Storage_Address').AsString;
       Edit6.Text:=ClientModule1.ClientDataSet1.FieldByName('fzjg').AsString;
       Edit7.Text:=ClientModule1.ClientDataSet1.FieldByName('Storage_Remarks').AsString;
       if ClientModule1.ClientDataSet1.FieldByName('Storage_SaleBill').AsString='1' then
       begin
         CheckBox1.Checked:=True;
       end else CheckBox1.Checked:=False;

       if ClientModule1.ClientDataSet1.FieldByName('Storage_UnifyCost').AsString='1' then
       begin
         CheckBox2.Checked:=True;
       end else CheckBox2.Checked:=False;

     end;

   except
     On E:Exception do
     Application.MessageBox(PChar(E.Message), '错误', 16);//抛出异常信息

   end;

 其中:
    showmessage(ClientModule1.ClientDataSet1.FieldByName('fzr').AsString);  可以正确读到信息

而一样的,在:
       Edit3.Text:=ClientModule1.ClientDataSet1.FieldByName('fzr').AsString;就提示:
   ClientDataset1:field'fzr' not found

真不知道问题出在了那里,请大家给看看
----------------------------------------------
偶尔做做代码应付一下工作,却发现Delphi已成必配
作者:
男 sxfgf (FC_FGF) ★☆☆☆☆ -
普通会员
2023/11/19 7:47:24
1楼: 为什么从数据库中读取的数据先赋值给一个string的变量,然后再赋值给Edit就可以?这是什么原因?直接赋值给Edit.text就会出现字段找不到的错误。百思不得其解,请教各位这是什么情况呢?
   iCKID:=strtoint(BasicInfo_storage_List.selectedID);
   sql:=' select Storage_Code,Storage_Name,Storage_FZR,fzr,Storage_FZRTel,Storage_Address,Storage_BranchID,Storage_Remarks,fzjg,Storage_SaleBill,Storage_UnifyCost  from  QC_GetStorageMod (:p1) ';

   try
     ClientModule1.ClientDataSet1.Close;
     ClientModule1.ClientDataSet1.CommandText:=sql;
     ClientModule1.ClientDataSet1.ParamByName('p1').AsInteger:=iCKID;
     ClientModule1.ClientDataSet1.Open;

     if ClientModule1.ClientDataSet1.RecordCount>0 then
     begin
        s1:=ClientModule1.ClientDataSet1.FieldByName('Storage_Code').AsString;
        s2:=ClientModule1.ClientDataSet1.FieldByName('Storage_Name').AsString;
        s3:= ClientModule1.ClientDataSet1.FieldByName('fzr').AsString;
        s4:=ClientModule1.ClientDataSet1.FieldByName('Storage_FZRTel').AsString;
        s5:=ClientModule1.ClientDataSet1.FieldByName('Storage_Address').AsString;
        s6:=ClientModule1.ClientDataSet1.FieldByName('fzjg').AsString;
        s7:=ClientModule1.ClientDataSet1.FieldByName('Storage_Remarks').AsString;
        s8:=ClientModule1.ClientDataSet1.FieldByName('Storage_SaleBill').AsString;
        s9:=ClientModule1.ClientDataSet1.FieldByName('Storage_UnifyCost').AsString;

        Edit1.Text:=s1 ;
        Edit2.Text:=s2 ;
        Edit3.Text:=s3 ;
        Edit4.Text:=s4 ;
        Edit5.Text:=s5 ;
        Edit6.Text:=s6 ;
        Edit7.Text:=s7 ;

       if s8='1' then
       begin
         CheckBox1.Checked:=True;
       end else CheckBox1.Checked:=False;

       if s9='1' then
       begin
         CheckBox2.Checked:=True;
       end else CheckBox2.Checked:=False;

     end;

   except
     On E:Exception do
     Application.MessageBox(PChar(E.Message), '错误', 16);//抛出异常信息

   end;
----------------------------------------------
偶尔做做代码应付一下工作,却发现Delphi已成必配
作者:
男 tuesdays (Tuesday) ▲▲▲▲△ -
普通会员
2023/11/19 15:29:34
2楼: AsString 有时返回nil吧, 进变量就可以成string了.
----------------------------------------------
delphi界写python最强, python界写delphi最强. 写自己的代码, 让别人去运行.
作者:
男 wangdonghai (wdh) ★☆☆☆☆ -
盒子活跃会员
2023/11/20 8:53:51
3楼: 这种SQL写法有点看不懂,我按照楼主的写法在SQL Server 2008下执行就报错,
Select 字段 From 表名 (:参数)
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS