表1和表2的关键字段都是MBMC
现在我用StringGrid显示对表1的查询结果
选择cells时,一旦选定,MBMC就定了。然后在DBImage中显示选中的这个MBMC的图片(图有多张)我写的程序有什么问题啊?
procedure TFrm_YDFK.TabSheet1Show(Sender: TObject);
var i:integer;
begin
//定义表格1
with StringGrid1 do
begin
cells[0,0]:='目标名称';
cells[1,0]:='所属区域';
cells[2,0]:='基本情况';
end;
with DMKJB.ADOQuery1 do
begin
DMKJB.ADOQuery1.Active:=false;
close;
SQL.clear;
sql.add('Select * from MB');
open;
DMKJB.ADOQuery1.Active:=true;
first;
with StringGrid1 do
for i:=1 to DMKJB.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('MBMC').AsString;
cells[1,i]:=fieldbyname('SSQY').AsString;
cells[2,i]:=fieldbyname('JBQK').AsString;
next;
end;
end;end;procedure TFrm_YDFK.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//选择StingGrid1中某一行时,在Memo1中显示相应的内容
case ARow of
1..10000:
begin
Memo1.Text:=StringGrid1.Cells[2,ARow];
with DMKJB.ADOQuery2 do
begin
DMKJB.ADOQuery2.Active:=false;
close;
SQL.clear;
sql.add('Select * from TP');
open;
DMKJB.ADOQuery2.Active:=true;
DBImage1.DataSource:=DMKJB.ADOQuery2.DataSource;
end;
end;
end;end;procedure TFrm_YDFK.Button1Click(Sender: TObject);
var i,j:integer;
condition_YDFK:string;
str_YDFK:string;
// str_YDFK1:string;
begin
str_YDFK:='';
//查询条件
if (ComboBox1.Text<>'') and (Edit1.Text<>'') then
str_YDFK:=str_YDFK+'MBMC'+'='+Edit1.Text+'or'+'SSQY'+'='+ComboBox1.Text; //异常中断处理
try
with DMKJB.ADOQuery1 do
begin
DMKJB.ADOQuery1.Active:=false;
close;
SQL.clear;
sql.add('Select * from MB where'+str_YDFK);
open;
DMKJB.ADOQuery1.Active:=true;
if DMKJB.ADOQuery1.RecordCount<1 then
Application.MessageBox('没有找到符合条件的数据?','查询结果',MB_YESNO+MB_ICONQUESTION)
else
begin
with StringGrid1 do //清空显示表格
begin
RowCount:=DMKJB.ADOQuery1.RecordCount+1;
for i:=1 to DMKJB.ADOQuery1.RecordCount do
for j:=0 to 2 do
cells[j,i]:='';
end;
first;
with StringGrid1 do
for i:=1 to DMKJB.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('MBMC').AsString;
cells[1,i]:=fieldbyname('SSQY').AsString;
cells[2,i]:=fieldbyname('JBQK').AsString;
next;
end;
end;
end;
except
Application.MessageBox('查询语句有错误','异常错误',mb_iconwarning+mb_ok);
end;
end;
现在我用StringGrid显示对表1的查询结果
选择cells时,一旦选定,MBMC就定了。然后在DBImage中显示选中的这个MBMC的图片(图有多张)我写的程序有什么问题啊?
procedure TFrm_YDFK.TabSheet1Show(Sender: TObject);
var i:integer;
begin
//定义表格1
with StringGrid1 do
begin
cells[0,0]:='目标名称';
cells[1,0]:='所属区域';
cells[2,0]:='基本情况';
end;
with DMKJB.ADOQuery1 do
begin
DMKJB.ADOQuery1.Active:=false;
close;
SQL.clear;
sql.add('Select * from MB');
open;
DMKJB.ADOQuery1.Active:=true;
first;
with StringGrid1 do
for i:=1 to DMKJB.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('MBMC').AsString;
cells[1,i]:=fieldbyname('SSQY').AsString;
cells[2,i]:=fieldbyname('JBQK').AsString;
next;
end;
end;end;procedure TFrm_YDFK.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//选择StingGrid1中某一行时,在Memo1中显示相应的内容
case ARow of
1..10000:
begin
Memo1.Text:=StringGrid1.Cells[2,ARow];
with DMKJB.ADOQuery2 do
begin
DMKJB.ADOQuery2.Active:=false;
close;
SQL.clear;
sql.add('Select * from TP');
open;
DMKJB.ADOQuery2.Active:=true;
DBImage1.DataSource:=DMKJB.ADOQuery2.DataSource;
end;
end;
end;end;procedure TFrm_YDFK.Button1Click(Sender: TObject);
var i,j:integer;
condition_YDFK:string;
str_YDFK:string;
// str_YDFK1:string;
begin
str_YDFK:='';
//查询条件
if (ComboBox1.Text<>'') and (Edit1.Text<>'') then
str_YDFK:=str_YDFK+'MBMC'+'='+Edit1.Text+'or'+'SSQY'+'='+ComboBox1.Text; //异常中断处理
try
with DMKJB.ADOQuery1 do
begin
DMKJB.ADOQuery1.Active:=false;
close;
SQL.clear;
sql.add('Select * from MB where'+str_YDFK);
open;
DMKJB.ADOQuery1.Active:=true;
if DMKJB.ADOQuery1.RecordCount<1 then
Application.MessageBox('没有找到符合条件的数据?','查询结果',MB_YESNO+MB_ICONQUESTION)
else
begin
with StringGrid1 do //清空显示表格
begin
RowCount:=DMKJB.ADOQuery1.RecordCount+1;
for i:=1 to DMKJB.ADOQuery1.RecordCount do
for j:=0 to 2 do
cells[j,i]:='';
end;
first;
with StringGrid1 do
for i:=1 to DMKJB.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('MBMC').AsString;
cells[1,i]:=fieldbyname('SSQY').AsString;
cells[2,i]:=fieldbyname('JBQK').AsString;
next;
end;
end;
end;
except
Application.MessageBox('查询语句有错误','异常错误',mb_iconwarning+mb_ok);
end;
end;
解决方案 »
- 窗体不用SHOW怎么自动显示了?郁闷中……
- 关于cxGrid 的view 的oncellclick事件不能同showmessage方法
- 当adquery向数据库插入数据后,dbgrid里只显示最新插入的一条记录,前面插入的都看不到了,请问这是么回事呢?
- 一个SQL的问题!
- 求TmxOutlookBar的下载,特急哦
- 辞职贴,感觉自己无能为力再为大家服务
- 为什么必须引用单元1?
- 想查出当年,当月,当日的数据,sql怎么写
- 如何在屏幕或窗口中判断一张图片的出现
- adodataset插记录的问题?
- C/S结构中,客户端与服务器端有几种连接方式啊,哪一种比较好,
- Delphi7 中使用dbexpress连接linux系统下MySql数据库的问题!
还有选择Cells后,DBImage里没反应啊!
begin
//DMKJB.ADOQuery2.Active:=false;//<-多余的代码
close;
SQL.clear;
sql.add('Select * from TP');//<--语句有问题,没有条件
open;
//DMKJB.ADOQuery2.Active:=true;//<-多余的代码
DBImage1.DataSource:=DMKJB.ADOQuery2.DataSource;
end;
http://www.anylib.com
可能只这句饱错,没有空格
str_YDFK:=str_YDFK+' MBMC'+'='+Edit1.Text+' or '+'SSQY'+'='+ComboBox1.Text;
sql.add('Select * from MB where '+str_YDFK);
该用引号的你没用,
该用空格的你也没有
1.把要显示的图片数据读取到DataSet里面。
2.在StringGrid.Objects[Col,Row]里面存储DataSet的BookMark;
3.选中Cell的时候同样,DataSet.GotoBookMark(StringGrid.Objects[Col,Row]);
4.DBImage显示图片。
var i:integer;
begin
//定义表格1
with StringGrid1 do
begin
cells[0,0]:='目标名称';
cells[1,0]:='所属区域';
cells[2,0]:='基本情况';
end;
with DMKJB.ADOQuery1 do
begin
DMKJB.ADOQuery1.Active:=false;
close;
SQL.clear;
sql.add('Select * from MB');
open;
DMKJB.ADOQuery1.Active:=true;
first;
with StringGrid1 do
for i:=1 to DMKJB.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('MBMC').AsString;
cells[1,i]:=fieldbyname('SSQY').AsString;
cells[2,i]:=fieldbyname('JBQK').AsString;
next;
end;
end;end;procedure TFrm_YDFK.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//选择StingGrid1中某一行时,在Memo1和DBImage1中显示相应的内容
case ARow of
1..10000:
begin
Memo1.Text:=StringGrid1.Cells[2,ARow];
with DMKJB.ADOQuery2 do
begin
DMKJB.ADOQuery2.Active:=false;
close;
SQL.clear;
sql.add('Select * from TP where MBMC='+StringGrid1.Cells[0,ARow]);
open;
DMKJB.ADOQuery2.Active:=true;
DBImage1.DataSource.DataSet:=DMKJB.ADOQuery2;
end; end;
end;end;
编译没问题,但当运行时,用鼠标选择到第ARow行cells时,程序报错说:参数 该目标没有默认值。如点cells[0,1]时,错误为:参数 目标1没有默认值。(目标1是表中字段MBMC的具体值啊!我在数据表中添加了目标1,目标2,目标3……等几行数据。)
为什么会有这个错误呢?