请问各位高手,我在运行时间查询时出现现'invalud use of keyword'错误(20分)

  • 主题发起人 windfollower
  • 开始时间
W

windfollower

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据库使用name作为索引,出现'invalud use of keyword',是不是使用no做索引就可解决这个问题,
另外,no如何自动生成,在database中如何实现,盼
 
好像no是保留字,你换换名
 
你最好能换个名字,no和name在有些数据库中都是保留字。
 
是不是呢的数据库又重复值?
 
最好把你出错的那条语句写出来。
 
procedure Tsearch.Button1Click(Sender: TObject);
var
sqlstr,sqlname,sqldate,sqltyp:string;
begin
main.query1.close;
main.query1.sql.clear;
sqlstr:='select * from main ';

if edit1.text='' then
sqlname:=''
else sqlname:=' where '+' name like'+'''%'+edit1.Text+'%''';

if (dateedit1.text='') and (dateedit2.text='') then
sqldate:=''
else if (dateedit1.text='') and (dateedit2.text<>'') then
sqldate:=' and gdate<='+datetostr(dateedit2.date)+''''
else if (dateedit1.text<>'') and (dateedit2.text='') then
sqldate:=' and gdate>='+datetostr(dateedit1.date)+''''
else if (dateedit1.text<>'') and (dateedit2.text<>'') then
begin
if dateedit1.date>dateedit2.date then

showmessage('起始时间不能大于结束时间!')

else
sqldate:=' and gdate>='+''''+datetostr(dateedit1.date)+''''+' and date<='+''''+datetostr(dateedit2.Date)+'''';
end;

main.Query1.SQL.Text:=sqlstr+sqlname+sqldate;
main.Query1.Open;
close;
if main.Query1.recordcount=0 then
showmessage('没有查询到符合条件的数据.');
end;


显示INVALID USE OF KEYWORD TOKEN:AND NUMBER:1
 
如果你的edit1.text为'',那么sqlname=''
然后你的sql语句中就没有where了,这是如果sqldate<>'',那不就错了?
 
顶部