B
blackeagle136
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi7+ADO实现从EXCEL中检索数据,检索部分的程序如下:
ADOConnection1.Connected:=False;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/TTT.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT date,name,types FROM [excel 8.0;database=C:/TTT.xls].[Sheet1$] WHERE types LIKE "%'+Kword.Text+'%"');
ADOQuery1.Parameters.Clear;
ADOQuery1.Open;
end;
Kword.Text是用户输入的检索关键字,通过编译,但是程序运行时会报错,错误内容为“未知”,后来检查发现如果TTT.xls中types列的某一个单元格的内容超过256个字母或256个汉字就会报错,反之如果其内容为字母并且字母个数小于256,或者为汉字并且汉字个数小于256则不会报错,而且只有在模糊查询LIKE时才会报错,用精确查找则没有问题,真不知道是什么原因,大家帮忙分析一下啊。谢谢了。
ADOConnection1.Connected:=False;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/TTT.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT date,name,types FROM [excel 8.0;database=C:/TTT.xls].[Sheet1$] WHERE types LIKE "%'+Kword.Text+'%"');
ADOQuery1.Parameters.Clear;
ADOQuery1.Open;
end;
Kword.Text是用户输入的检索关键字,通过编译,但是程序运行时会报错,错误内容为“未知”,后来检查发现如果TTT.xls中types列的某一个单元格的内容超过256个字母或256个汉字就会报错,反之如果其内容为字母并且字母个数小于256,或者为汉字并且汉字个数小于256则不会报错,而且只有在模糊查询LIKE时才会报错,用精确查找则没有问题,真不知道是什么原因,大家帮忙分析一下啊。谢谢了。