procedure TForm1.Button1Click(Sender: TObject);
var
stitle:string;
sparent:string;
sbparent:string;
sindexnum:integer;
slevel:integer;
tmpNode:TtreeNode;
baseNode:TtreeNode;
begin
 tmpNode:=TreeView1.Items.Add(Treeview1.Selected,Edit1.Text);
 if tmpNode<>nil then
 begin
 stitle:=tmpNode.Text;
 slevel:=tmpNode.Level;
 sindexnum:=tmpNode.Index;
 if tmpNode.Parent<> nil then
 begin
  sparent:=tmpNode.Parent.Text;
  while tmpNode.Parent<>nil Do
  begin
   tmpNode:=tmpNode.Parent;
  end;
  sbparent:=tmpNode.Text;
 end;
 Query1.Close;
 Query1.SQL.Clear;
 Query1.SQL.Add('Insert into data(title,indexnum,level,parent,baseparent)');
 Query1.SQL.Add('Values(:stitle1,:sindexnum1,:slevel1,:sparent1,:sbparent1)');
 Query1.Unprepare;
 Query1.ParamByName('stitle1').AsString:=stitle;
 Query1.ParamByName('sindexnum1').AsInteger:=sindexnum;
 Query1.ParamByName('slevel1').AsInteger:=slevel;
 Query1.ParamByName('sparent1').AsString:=sparent;
 Query1.ParamByName('sbparent1').AsString:=sbparent;
 Query1.Prepare;
 Query1.ExecSQL;
 end;
end;{
数据库表是data.db
列元素分别为:
title  //alpha类型
indexnum  //number类型
level  //number类型
parent //alpha类型
baseparent  //alpha类型
}
上面的代码哪里错了嗄?该怎么改嗄??高手指点!!
偶已经郁闷很久了……每次都是SQL查询弄半天……偶按照SQL标准语句写了嗄?为什么Delphi总是提示错误呢?
错误提示如下:
Project Project1.exe raised exception class EDBEngineError with message 'Invalid use of keyword.'
Token:level,parent,baseparent)
Values(?,?,?,?,?)
Line Number:1'. Process stopped. Use Step or Run to continue.大伙把这段过程运行试一试,看能运行否?
答对分全给!!!!

解决方案 »

  1.   

    唉,看英文错误啊。
    明明写的是使用了系统保留字在level处啦。
    把数据库里面的字段名改掉,改成slevel就可以啦。
      

  2.   


     Query1.SQL.Clear;
     Query1.SQL.Add('Insert into data(title,indexnum,level,parent,baseparent)  ');
     Query1.SQL.Add('Values(:stitle1,:sindexnum1,:slevel1,:sparent1,:sbparent1)');
     Query1.Unprepare;
    在(title,indexnum,level,parent,baseparent)后加个空格看看。
      

  3.   

    message 'Invalid use of keyword.'
    Token:level,parent,baseparent)说的是使用了无效的关键字,估计是 level 的问题。
      

  4.   

    偶根据各位的意见在数据库表data.db中把Level改成了Tlevel,又有一个错误提示:Type mismatch in exception 类型和表达式不匹配?再把data.db改成:
    {
    数据库表是data.db
    列元素分别为:
    title  //alpha类型
    indexnum  //Short类型  原来是number类型
    level  //Short类型  原来是number类型
    parent //alpha类型
    baseparent  //alpha类型
    }可是上面的"Type mismatch in exception "还是出现大侠教偶嗄~~~~~~~~~~
      

  5.   

    Ok No problem 了把Asinteger改成asShortInt就没问题了:)