就是一段代码,就是根据数据库内容初始化一系列combobox的值,但是程序运行总是报错:
Exception...
Date : 2003-6-5 16:39:04
Address: 005178E1
Module : stk.exe
Type : EAccessViolation
Message: Access violation at address 005178E1 in module 'stk.exe'. Read of address 0000033C程序代码如下:
procedure Ttystk.N21Click(Sender: TObject);
var
id:integer;
begin
with zdsj do
begin
query1.SQL.Clear;
query1.SQL.Text:='select kmmc from 科目表.db';
query1.Open;
s_km.Clear;
s_km.Items.Add('');
for id:=1 to query1.recordcount do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end; query1.SQL.Clear;
query1.SQL.Text:='select ndmc from 难度表.db';
query1.Open;
s_nd.Clear;
s_nd.Items.Add('');
for id:=1 to query1.RecordCount do
begin
s_nd.Items.Add(query1.fieldbyname('ndmc').AsString);
query1.Next;
end; query1.SQL.Clear;
query1.SQL.Text:='select txmc from 题型表.db';
query1.Open;
s_tx.Clear;
s_tx.Items.Add('');
for id:=1 to query1.RecordCount do
begin
s_tx.Items.Add(query1.fieldbyname('txmc').AsString);
query1.Next;
end; s_zj.Enabled:=false;
s_tx.Enabled:=false;
s_nd.Enabled:=false;
s_no.Enabled:=false;
Button1.Enabled:=false;
Button2.Enabled:=false;
count:=0;
showmodal;
end;
end;
Exception...
Date : 2003-6-5 16:39:04
Address: 005178E1
Module : stk.exe
Type : EAccessViolation
Message: Access violation at address 005178E1 in module 'stk.exe'. Read of address 0000033C程序代码如下:
procedure Ttystk.N21Click(Sender: TObject);
var
id:integer;
begin
with zdsj do
begin
query1.SQL.Clear;
query1.SQL.Text:='select kmmc from 科目表.db';
query1.Open;
s_km.Clear;
s_km.Items.Add('');
for id:=1 to query1.recordcount do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end; query1.SQL.Clear;
query1.SQL.Text:='select ndmc from 难度表.db';
query1.Open;
s_nd.Clear;
s_nd.Items.Add('');
for id:=1 to query1.RecordCount do
begin
s_nd.Items.Add(query1.fieldbyname('ndmc').AsString);
query1.Next;
end; query1.SQL.Clear;
query1.SQL.Text:='select txmc from 题型表.db';
query1.Open;
s_tx.Clear;
s_tx.Items.Add('');
for id:=1 to query1.RecordCount do
begin
s_tx.Items.Add(query1.fieldbyname('txmc').AsString);
query1.Next;
end; s_zj.Enabled:=false;
s_tx.Enabled:=false;
s_nd.Enabled:=false;
s_no.Enabled:=false;
Button1.Enabled:=false;
Button2.Enabled:=false;
count:=0;
showmodal;
end;
end;
解决方案 »
- 想着好久啦!请各位帮手.......(如何显示日志记录...和打印记录)
- 请熟悉C语言的前辈们帮忙将一段异或运算代码转为Delphi
- 如何将自己写的程序放在Windows操作系统中,随Windows自动启动——————在线等待!!!!???????
- ado +oracle9i(linux 9)
- 有没有好的远程教育网站!!!!免费的!!!!
- 系统音量控制(如何获取当前音量值?)
- 一个捆饶了我一天的问题
- 记录集传递显示问题。请帮忙,解决定有高分相送。应该不是难的,可是我比较笨!!!
- 如何判断Image1中是否存在图片?
- 关于DELPHI中process bar的问题
- 关于opendialog问题
- 怎样遍离TListView
s_tx.Clear;
改成
s_tx.Items.Clear;
begin
query1.SQL.Clear;就是一开始的query1.SQL.Clear;出错,还有我的数据库都是定义好的啊,什么database里面的什么kut啊!!
大家看看啊,什么错误啊!!
--------------------------------------
看!
那支正飞向太阳的蛾子.....
就是我!
--------------------------------------
query1.close;
query1.Open;
application.createForm(Tzdsj,zdsj);
那就是database的connectionstring设好没有
你的table是自己create还是拉在窗体上的
你的database放在什么地方了,是不是datamodal
if assigned(zdsj) then //确保窗体创建了才执行。
for id:=1 to query1.recordcount do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end;
改为如下看看:
if not (query1.eof and query1.bof) then
begin
query1.first;
while not query1.eof do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end;
end;
其它的循环也改成这样。
if assigned(zdsj) then //确保窗体创建了才执行。
再把如下for循环改一下:
for id:=1 to query1.recordcount do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end;
改为如下看看:
if not (query1.eof and query1.bof) then
begin
query1.first;
while not query1.eof do
begin
s_km.Items.Add(query1.fieldbyname('kmmc').AsString);
query1.Next;
end;
end;
其它的循环也改成这样。
if assigned(zdsj) then //确保窗体创建了才执行
zdsj=tXXX.create; //如果没有创建则创建zdsj;另外query1.sql.clear;前也增加一句: query1.close;