CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

请问不能在循环中使用SQL语句吗?以下有个例子,有点搞不懂,请指教

楼主comtuper(小辉)2004-12-03 18:57:39 在 Delphi / 数据库相关 提问

我想向数据库中插入一个值,不过有个字段,有多个值,所以要插入N次在行,我将插入的SQL语句放到循环体中,总是报COMMANDTEXT   RESULT   无反回值,这是什么问题.  
           
          帮忙改一下,哈哈  
   
   
  procedure   Tlendbookf.BitBtn1Click(Sender:   TObject);  
  var  
        query   :   TADOQuery;  
        i   :   integer;  
        str   :   array   of   string;  
  begin  
             
            try  
            query   :=   TADOQuery.Create(self);  
            query.Connection   :=   dm.ADOConnection1;  
            for   i   :=   0   to   listbox1.items.count   -   1   do  
            begin  
   
            query.SQL.Add('select   id   from   book_info   where   name   ='''+listbox1.Items.Strings[i]+'''');  
            query.Open;  
            SetLength(str,listbox1.items.count);  
            if   query.RecordCount=1   then  
            str[i]:=   query.FieldValues['id'];  
            query.Close;  
            end;  
   
            for   i:=low(str)   to   HIGH(str)   do  
   
            begin  
            showmessage(str[0]);  
            query.SQL.Clear;  
            query.SQL.Add('insert   into   lend_book(cardid,id,lenddate,state)   values(:cardid,:id,:lenddate,:state)');  
            query.Parameters.ParamByName('cardid').Value   :=   Edit1.Text;  
            query.Parameters.ParamByName('id').Value   :=   str[0];  
            query.Parameters.ParamByName('lenddate').Value   :=   LeftStr(datetimetostr(now),pos('   ',datetimetostr(now)));  
            query.Parameters.ParamByName('state').Value   :=   1;  
            query.Open;  
            query.Close;  
            end;  
   
   
            ListBox3.Items.Clear   ;  
            ListBox1.Items.Clear;  
            showmessage('成功完成借书工作!');  
   
            except  
              showmessage('借书失败!');  
            end;  
  end; 问题点数:0、回复次数:4Top

1 楼cctv1111(小子)回复于 2004-12-03 19:09:02 得分 0

query.SQL.Add('insert   into   lend_book(cardid,id,lenddate,state)   values(:cardid,:id,:lenddate,:state)');  
            query.Parameters.ParamByName('cardid').Value   :=   Edit1.Text;  
            query.Parameters.ParamByName('id').Value   :=   str[0];  
            query.Parameters.ParamByName('lenddate').Value   :=   LeftStr(datetimetostr(now),pos('   ',datetimetostr(now)));  
            query.Parameters.ParamByName('state').Value   :=   1;  
            query.Open;  
            query.Close;  
            end;  
   
  {  
            query.Open;       這句錯了。。。換成這個就行了。。     query.ExecSQL     }Top

2 楼smiler007(笑一笑)回复于 2004-12-03 19:33:51 得分 0

补充一点:  
  for   i   :=   0   to   listbox1.items.count   -   1   do  
            begin  
            Query.SQL.Clear;       //加上这句  
            query.SQL.Add('select   id   from   book_info   where   name   ='''+listbox1.Items.Strings[i]+'''');  
  Top

3 楼pdbird(老巢)回复于 2004-12-03 23:00:01 得分 0

请用以下格式:  
  var  
      sSql:string;  
      i:       integer;  
  begin  
      sSql:='begin';  
      for   i   to   XXX   do  
      begin  
          sSql:=   sSql+   'insert   into   TableName   Value   .....'  
      end;  
      sSql:=   sSql+   'commit;end;';  
  end;  
  清晰又不易出错。Top

4 楼pdbird(老巢)回复于 2004-12-03 23:01:24 得分 0

对不起,上面错了。  
  var  
      sSql:string;  
      i:       integer;  
  begin  
      sSql:='';  
      for   i   to   XXX   do  
      begin  
          sSql:=   sSql+   'insert   into   TableName   Value   .....'  
      end;  
      sSql:=   'begin'+Sql+   'commit;end;';  
  end;  
  Top

相关问题

  • 在javascript执行sql语句并循环
  • mysql5的sql语句支持循环吗?
  • sql server2000中的循环语句
  • 求一sql语句及循环语句,急!
  • 求SQL语句[一条Sql语句完成,不要有循环/游标]
  • 如何将循环写到SQL里,求SQL语句。
  • 冰天雪地裸体360度跪求一SQL循环语句!
  • 请教循环插入数据的SQL语句??谢谢
  • 下边的例子用一条SQL语句写 怎么写?
  • 能给出标准SQL书写事务的SQL语句吗?请给个例子。

关键词

  • sql
  • ssql
  • lenddate
  • query
  • cardid
  • parambyname
  • listbox
  • 插入
  • 值
  • begin

得分解答快速导航

  • 帖主:comtuper

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo