关于List index out of bounds(0)的问题

关于List index out of bounds(0)的问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061223203333140.html
运行输入数据按确定按钮后,弹出对话框说List   index   out   of   bounds(0),为什么会有这样的错误呢。代码如下:  
  unit   Borrow;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   DB,   DBTables,   Mask,   DBCtrls,   StdCtrls;  
   
  type  
      TBorrowForm   =   class(TForm)  
          GroupBox1:   TGroupBox;  
          GroupBox2:   TGroupBox;  
          GroupBox3:   TGroupBox;  
          Label1:   TLabel;  
          Edit1:   TEdit;  
          Label2:   TLabel;  
          Edit2:   TEdit;  
          Button1:   TButton;  
          DBEdit1:   TDBEdit;  
          Query1:   TQuery;  
          Query2:   TQuery;  
          Query3:   TQuery;  
          Query4:   TQuery;  
          DataSource1:   TDataSource;  
          DataSource2:   TDataSource;  
          DataSource3:   TDataSource;  
          Label3:   TLabel;  
          Label4:   TLabel;  
          DBEdit2:   TDBEdit;  
          Label5:   TLabel;  
          DBEdit3:   TDBEdit;  
          Label6:   TLabel;  
          DBEdit4:   TDBEdit;  
          DBEdit5:   TDBEdit;  
          Label7:   TLabel;  
          Label8:   TLabel;  
          Label9:   TLabel;  
          Label10:   TLabel;  
          DBEdit6:   TDBEdit;  
          DBEdit7:   TDBEdit;  
          DBEdit8:   TDBEdit;  
          Button2:   TButton;  
          Button3:   TButton;  
          Button4:   TButton;  
          Button5:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   Button3Click(Sender:   TObject);  
          procedure   Button4Click(Sender:   TObject);  
          procedure   Button5Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      BorrowForm:   TBorrowForm;  
   
  implementation  
   
  uses   Query,   Return;  
   
  {$R   *.dfm}  
   
  procedure   TBorrowForm.Button1Click(Sender:   TObject);  
  begin  
    if   Edit1.Text=''then  
          ShowMessage('请输入书号和读者编号!')  
      else  
          if   Edit2.Text=''   then  
                else  
                    begin  
                      Query1.Params[0].AsString:=Edit1.Text;  
                      Query1.ExecSQL;  
                      Query1.Active:=true;  
                      Query2.Params[0].AsString:=Edit2.Text;  
                      Query2.ExecSQL;  
                      Query2.Active:=true;  
                      Query3.Params[0].AsString:=Edit2.Text;  
                      Query3.ExecSQL;  
                      Query3.Active:=true;  
                    end;  
  end;  
   
  procedure   TBorrowForm.Button2Click(Sender:   TObject);  
  begin  
            if   DBEdit4.Text=''   then  
                    showmessage('该书已借出,请选择其他!')  
            else  
                    begin  
                        Query4.SQL.Clear;  
                        Query4.SQL.Add('INSERT   INTO   借阅   VALUES(Edit1.Text,Edit2.Text,SYSDATE)');  
                        Query4.ExecSQL;  
                        Query4.SQL.Clear;  
                        Query4.SQL.Add('UPDATE   图书   SET   借出否:=True   WHERE   书号=Edit1.Text');  
                        Query4.ExecSQL;  
                        Query4.Close;  
                    end;  
  end;  
   
  procedure   TBorrowForm.Button3Click(Sender:   TObject);  
  begin  
        QueryForm.show;  
  end;  
   
  procedure   TBorrowForm.Button4Click(Sender:   TObject);  
  begin  
        ReturnForm.show;  
  end;  
   
  procedure   TBorrowForm.Button5Click(Sender:   TObject);  
  begin  
        BorrowForm.Close;  
  end;  
   
  end.

天,你的命名太那个了吧...  
  不知道哪个是你的确定按钮  
  这个错误是列表越界的通用提示,引用了一个空列表的值  
  再仔细找找原因

本人是菜鸟,请问"列表越界“是怎么回事啊?

大侠门,帮我解决一下问题吧,感激不尽啊。

F8断点调试吧

Query1.Params[0].AsString:=Edit1.Text;  
  Query2.Params[0].AsString:=Edit2.Text;  
  Query3.Params[0].AsString:=Edit2.Text;  
  ---------------------------------------  
   
  问题出在你的Query1~Query3的参数中。   你确定每个QUERY的SQL中都带有参数吗?可以肯定的是至少有一个没有带参数。请检查。把参数加上后一切就会大大的OK的。

还是老冯厉害,和我所见略同,呵呵。

老冯说得对!   先检查一下SQL中是否有参数,  
  另外你的代码有错误:  
  Query4.SQL.Add('INSERT   INTO   借阅   VALUES(Edit1.Text,Edit2.Text,SYSDATE)');  
                        Query4.ExecSQL;  
                        Query4.SQL.Clear;  
                        Query4.SQL.Add('UPDATE   图书   SET   借出否:=True   WHERE   书号=Edit1.Text');  
                        Query4.ExecSQL;  
                        Query4.Close;  
  Edit的值不能这样引用到query4中,例如:Query4.SQL.Add('INSERT   INTO   借阅   VALUES('''+Edit1.Text+''','+'''+Edit2.Text+''',SYSDATE)');  
 

代码中错误太多,像楼上各位说的。  
  还有ExecSql和Active   :=   True不要乱用,也不要混用。

我在Query1~Query3都有参数了,分别是:  
  query1:  
  select   *   from   图书   where   书号='+''''+Edit1.Text+'''  
  Query2:  
  select   *   from   读者   where   编号='+''''+Edit1.Text+'''  
  Query3:  
  select   str(count(*))+'本'   from   借阅   where   读者编号='+''''+Edit1.Text+'''  
  请问老冯,我的这些参数对吗?  
  我的上面给的程序是实现图书馆管理系统中的借书功能。

错了Query1~Query3的参数应该是:  
  query1:  
  select   *   from   图书   where   书号='+''''+Edit1.Text+'''  
  Query2:  
  select   *   from   读者   where   编号='+''''+Edit2.Text+'''  
  Query3:  
  select   str(count(*))+'本'   from   借阅   where   读者编号='+''''+Edit2.Text+'''  
  请问,我的这些参数对吗?

呵呵,你这样是没有参数啊。

难怪越界呢。一个参数也没有。  
  还有SQL语句里是没有:=的。  
  Query4.SQL.Add('UPDATE   图书   SET   借出否:=True   WHERE   书号=Edit1.Text');

那请问怎么设置参数呢?各位高手。

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/20/1314908.html

python运行apriori算法过程中出现了下标越界的问题,具体报错为(IndexError: list index out of range)求大神指正,不胜感激! 关联规则apriori算法实现过程的问题,求解大神(调试了n天未解决)python运行apriori算法过程中出现了下标越界的问题,具体报错为(IndexError: list index out of range) python运行apriori算法过程中出现了下标越界的问题,具体报错为(IndexError: list index out of range) 算法运行过程中出现了下标越界的问题... 阅读详情

相关推荐

[论文笔记] megatron报错 BlendedDataset blend goes out of bounds for list 34 for valid split(index error)

由于pai新版对于index的代码有改动,所以需要重新tokenize。

心宝的博客 437

list index out of bounds_数组链表和List部分理解总结

数组访问快的原因:数组在内存中的空间是连续的,因而可以直接通过数组的首地址 计算出 需要访问的位置,直接拿到元素或对象引用链表 增删快原因:这是相较于数组而言的,对于数组而言,元素的新增 删除 可能会伴随后面的元素向前移动的问题,而数组上的位置移动,是需要一个个复制过去。而链表的新增删除,在不考虑元素定位的情况下,只需要修改最多三个节点(包含元素本身)的引用指向而已。链表随机访问慢的原因:相较于数...

weixin_39946798的博客 3527

出现list index out of bounds(0)

出现list index out of bounds(0)? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiNetwork/html/delphi_200612312048352.html 运用Socket编写了一个客户端,不过只能连上和接收服务器的信息,不知道为何不能发送信息,而且在退出时出现这个错误list i...

aibi9196的博客 3247

delphi 使用VPDFDoc 修改PDF加密文件异常卡死,对于未加密的文件正常...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 12

caffe 根据训练输出的log 绘制accuracy loss 曲线时遇到 IndexError:list index out of range

/home/wcs/caffe/tools/extra/plot_training_log.py.example 6 train_loss_iters_60000.png ResNet152-2017-08-01-12-49-30.log 以上是我用caffe 自带的工具plot_training_log.py.example绘制曲线的命令行, 分别表示  工具所在/曲线类别/输出图像的名字

qq_20373723的博客 3461

【python报错】成功解决 IndexError: list index out of range

是一个常见的 Python 错误,通常是因为索引超出了列表的有效范围。在访问列表元素之前,检查列表的长度。处理空列表时,添加相应的检查逻辑。使用异常处理机制来捕获和处理索引越界的情况。仔细调试代码逻辑,确保索引的使用正确。检查外部数据源的完整性和正确性。希望这篇文章能够帮助你更好地理解和解决问题。如果你在编程过程中遇到其他问题,欢迎在评论区留言讨论。

qq_38614074的博客 1501

list index out of bounds_List接口及经常用的实现类

List接口及经常用的实现类所有超级接口: Collection<E>, Iterable<E> 所有已知实现类: AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, St...

weixin_39942726的博客 888

NoteExpress在office word 64位报错:List index out of bounds

软件及型号:NoteExpress3.2.0.7222(集团版) 情况描述: 在office word 2016 64位版本上,第一次插入引文没问题,第二次就报“List index out of bounds”的错误。 解决方法:几经折腾,后重装32位版的office,我装的office2019的32位,最后完美运行。 现在的我i对32位的应用软件有一种莫名的好感。 另外在论坛里面看到...

bingo_6的博客 8253

【Python】成功解决IndexError: index 1256 is out of bounds for axis 0 with size 629

🔥【Python】解决IndexError,告别索引越界烦恼!🔥 🔍遭遇`IndexError: index 1256 is out of bounds for axis 0 with size 629`?别慌,本文助你轻松解决! 🤔深入剖析错误原因,让你明白根源所在。 🔎教你如何快速定位错误源头,不再迷失在代码中。 🛠️提供实用修复方法,让你的代码重新焕发活力! 💡举一反三,分享避免类似错误的技巧,让你编程更轻松。 📚更有Python序列操作和错误处理深入学习指南,助你成为编程

创作高质量博文,分享知识,共同进步! 5692

【已解决】IndexError_ list index out of range 列表索引越界 全套根治方案

本质不是BUG,是代码逻辑未适配列表真实长度。新手报错多是索引规则不熟悉、循环写法不规范;老手报错基本是动态数据缺失、未做容错处理。减少索引使用 + 动态适配长度 + 数据前置校验 + 异常兜底。按照本文的规范写法和兜底方案,可彻底解决所有列表索引越界问题,保证代码稳定运行。(注:部分内容可能由 AI 生成)

姜的blog 249

从‘1256 out of bounds for size 629’这个具体报错,聊聊Python迭代器、生成器与内存的那些事儿

本文深入解析Python中常见的‘1256 out of bounds for size 629’索引越界错误,探讨迭代器、生成器与内存管理的交互机制。通过实际代码示例,揭示NumPy、Pandas等库中的特殊索引行为,并提供调试复杂索引错误的实用技巧,帮助开发者优化内存使用并提升代码安全性。

红太阳照大地 342

java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0

报错原因: 使用list.get(0)获取对象,但是list是空的,导致报错 解决办法: 优化处理一下代码即可 如:设置三元运算法,先判断集合是否为空,再获取值

foryai的博客 4048

list index out of bounds_python3基础03列表(list)和元组(tuple)

"pythonic生物人"的第35篇分享。原创不易,点个“赞“或"在看"鼓励下呗!摘要本文梳理python序列容器中的列表和元组数据结构的基础知识。目录1、列表(list)列表特点列表创建列表操作相加(+)相乘(*)索引(index)切片列表元素修改成员资格列表推导式列表方法appendclearcopycountextendindexinseretpopremovereverserev...

weixin_39622988的博客 378

python indexerror out of bound_转 Python-IndexError: list index out of range

https://www.cnblogs.com/2bjiujiu/p/9063864.htmlError:IndexError: list index out of rangeWhere?对Python中有序序列进行按索引取值的时候,出现这个异常Why?对于有序序列: 字符串 str 、列表 list 、元组 tuple进行按索引取值的时候,默认范围为 0 ~ len(有序序列)-1,计数从0开始...

weixin_39945792的博客 276

exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

1.情景展示   Java 报错信息如下:   java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 2.原因分析   首先,这是越界异常,但不是数组越界异常。   数组越界的信息如下:   java.lang.ArrayIndexOutOfBoundsException   一直以为,它俩是同样的异常...

weixin_30724853的博客 1385
上一篇: 请问你看完这个有何感想?关于Delphi中的类型转换??
下一篇: 进销存中加权价在有负数这种情况下怎么处理
aibi9196
博客等级 码龄10年 3粉丝 283原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值