3个listbox,一个显示用户名(listbox1),一个显示某个用户所具有的权限(listbox2),一个显示某个用户不具有的权限(listbox3).为了方便,可以把某个用户没有具有的权限全部赋予给该用户.问题出来了,怎么把该用户所不具有的权限一次的赋予给他了?而且listbox3中只显示了给用户不具有权限的权限名,怎样才能把该权限的权限名及权限ID存入数据库,listbox3中显示的项目数不定.我写的程序如下
procedure TForm4.BitBtn2Click(Sender: TObject);
var
i:integer;
begin
for i:=ListBox3.Count-1 downto 0 do
begin
ListBox2.Items.Add(ListBox3.Items[i]);
adoquery4.SQL.clear;
adoquery4.SQL.Add('select * from sym_role where rolename="'+trim(listbox3.Items[listbox3.itemindex])+'"');
adoquery4.Open;
if adoquery4.RecordCount <>0 then
begin
with adoquery4 do
begin
adoquery3.sql.Clear ;
adoquery3.SQL.Add('insert into sym_userrole(userid,roleid,username,rolename) values("'+edit2.text+'","'+adoquery4.fieldbyName('roleid').asstring+'","'+edit1.text+'","'+adoquery4.fieldbyName('rolename').asstring+'")');
adoquery3.ExecSQL ;
end;
end;
end;
listbox3.Items.Clear ; //如果确实需要
end;
为什么总是提醒"list index out of bound(-1)",而且存不进数据库
谢谢解答 ,在线等
procedure TForm4.BitBtn2Click(Sender: TObject);
var
i:integer;
begin
for i:=ListBox3.Count-1 downto 0 do
begin
ListBox2.Items.Add(ListBox3.Items[i]);
adoquery4.SQL.clear;
adoquery4.SQL.Add('select * from sym_role where rolename="'+trim(listbox3.Items[listbox3.itemindex])+'"');
adoquery4.Open;
if adoquery4.RecordCount <>0 then
begin
with adoquery4 do
begin
adoquery3.sql.Clear ;
adoquery3.SQL.Add('insert into sym_userrole(userid,roleid,username,rolename) values("'+edit2.text+'","'+adoquery4.fieldbyName('roleid').asstring+'","'+edit1.text+'","'+adoquery4.fieldbyName('rolename').asstring+'")');
adoquery3.ExecSQL ;
end;
end;
end;
listbox3.Items.Clear ; //如果确实需要
end;
为什么总是提醒"list index out of bound(-1)",而且存不进数据库
谢谢解答 ,在线等
解决方案 »
- 给excel指定区域画线,如果excel不只一页,每页底下就没有边框?
- 继续问软件项目方面的东西(仓库管理+计件工资+人事管理的报价问题)
- 老板要我,浅谈自己对Object Pascal 及DELPHI面向对象的认识。
- 怎样取得BIOS序列号,急
- 关于INDY9 TidIMAP4 发送附近件到Gmail的问题
- ://这是过滤数据的图片请问这东西用什么第3方组件来做,好象用EHLIB很难做到这东西
- 高分求助,在线等候:如何把word文档保存到数据库大文本字段?
- 推荐软件:短小精悍安装程序生产器
- 对dcom配置的问题?
- Pchar与String和关于“线程”的问题的问题
- 请问如何使用xpmenu3.1这个控件阿!!刚刚安装成功!!谢谢
- 小问题复杂化
至于你自己的代码,你自己看看哪里导致这个越界情况吧。
这句错误。
当你的ListBox3没有选中任何项目的时候,ItemIndex为-1,所以会出现下标溢出。
看你的程序逻辑应该改成:
adoquery4.SQL.Add('select * from sym_role where rolename="'+trim(listbox3.Items[i])+'"');