100分求助模糊查询问题(问题有进展请DFW关注,提前有分,追加100分,不够我会在加分) (100分)

  • 主题发起人 主题发起人 lzhuan
  • 开始时间 开始时间
pro_code 是什么类型?
 
to lld
try
q_7.Open;//open命令需要返回结果集如果查询的结果不唯空,则用open
except
q_7.ExecSQL; //不需要返回结果,如果查询结果为空,则用这个命令
//在此捕捉错误,程序没有发生异常无法捕获错误信息
//我已经试过
to zhumoo :在那加引号,上面大家提供的方法我全试过了,都是一样的错误执行到q_7.open
程序就没有响应了
to 天真: pro_code ||pro_name 都是string型
如 pro_code pro_name
ATTT ATT计数秤
BTTT BTT计重秤
.... .......
 
to lzhuan,
open 前用showmessage(q_7.sql.text)看看是什么SQL语句
 
TO天真:
begin
dm.d_2.DataSet:=dm.q_7;
dm.q_7.close;
dm.q_7.SQL.Clear;
dm.q_7.sql.add('select * from pro_basedata.db where pro_code like :q1');
dm.q_7.ParamByName('q1').AsString:='"%'+edit_code1.text+'%"';
//*****************************************************************
showmessage(dm.q_7.sql.text);
//显示的结果为:
//select * from pro_basedata.db where pro_code LIKE :q1
//***************************************************************8
try
dm.q_7.Open;//运行到这句程序无响应,没有错误提示
except
on e:exception do showmessage('错误信息:'+e.message);//运行不到这一句
end;
end;


 
真他妈的见鬼了:
以下测试程序花了2分钟的时间才完成
得到的结果是table is full的错误提示
查看他生成的临时表
哇塞居然有254M
PRO_BASEDATA.DB只有127K阿
这254M从何而来
看来程序不应有问题了,是不是数据表有问题?
with query1 do
begin
close;
sql.clear;
sql.add('select * from pro_basedata.db');
open;
end;
datasource1.DataSet:=query1;
 
怎么大家都和我一样,没有办法吗?
帮我提前也有分
(我在出100分,不够在加)
 
试试这样的吧
begin
dm.d_2.DataSet:=dm.q_7;
dm.q_7.close;
dm.q_7.SQL.Clear;
dm.q_7.sql.add('select * from pro_basedata.db where pro_code like ''%'+edit_code1.text+'%'' ');
IF (NOT dm.q_7.Prepared) then dm.q_7.Prepare;
dm.q_7.Open;
end;
 
begin
dm.d_2.DataSet:=dm.q_7;
dm.q_7.close;
dm.q_7.SQL.Clear;
dm.q_7.sql.add('select * from pro_basedata.db where pro_code like :q1');
dm.q_7.ParamByName('q1').AsString:='%'+edit_code1.text+'%';
try
dm.q_7.Open;
showmessage('SQL语句已经执行。');//如果看不到这一句的话,检查你的数据库吧.
except
on e:exception do showmessage('错误信息:'+e.message);//运行不到这一句
end;
end;

 
trim(edit_code1.text)
 
trim(edit_code1.text)
//与你的问题无关
但你最好这样
 
现在问题已经查出
确定是 数据表的问题
我把以前备份的这个数据表拿过来使用
问题解决
可现在的问题是我现在的数据表中有很多新增的数据
因此我需要把这个表修复
请问有什么工具可以修复paradox的数据表?
各位还有什么其他的好办法,可以把这个表中的数据取出来
 
我的问题已经解决,用修复工具修复一下数据表
数据表中的pro_code||pro_name是唯一索引
而因为程序中没有控制好,导致出现重复数据
继而引起上面的一系列问题的产生
修复工具的下载地址为
http://www.playicq.com/dispdoc.asp?id=357
 
谢谢各位的讨论
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
后退
顶部