我是一个初学者,求求各位高手帮帮我。
错在哪里了。我是一个弱者。
procedure TForm10.BitBtn1Click(Sender: TObject);
var
p2,p3:string;begin
p1:=Form9.Edit1.text;
p2:=ComboBox1.Text;
with Form10.Query2 do
begin
Query2.SQL.Clear;
Query2.SQL.Add('select * from "d:\database\class.db" as kk where kk."Examname"=:Name');
Query2.Prepare;
ParamByname('Name').value:=p1;
Query2.Open;
end;
p3:=Form10.Query2.FieldValues['Gradename'];
if
p3<>edit1.text
then
showmessage('不能插入');
end;
运行
提示:invalid variant type conversion

解决方案 »

  1.   

    用单引号.你的SQL语句可否分细点.(建议,嘻嘻!)
      

  2.   

    1、呵呵,不能这样写
    Query2.SQL.Add('select * from "d:\database\class.db" as kk where kk."Examname"=:Name');
    首先,你的query2应该有一个database的属性设置,可以用一个database控件来实现,
    然后查询应该是这样:
    Query2.SQL.Add('select * from class.db  where Examname=:Name');
    其他都是对的。
    2、database如何设置
    双击database控件,会出现一个窗口,name 随便设一个,ALIAS NAME为空,
    DRIVER NAME为STANDARD,然后按如下写好就OK了
    PATH=d:\database
    DEFAULT DRIVER=PARADOX
    ENABLE BCD=FALSE
      

  3.   

    Query2.Close;
    Query2.SQL.Clear;
    Query2.SQL.Add('select * from "d:\database\class.db" kk where kk.Examname=:Name');
    ParamByname('Name').value:=p1;
    Query2.Prepare;   //所有准备完毕才能Prepare
    Query2.Open;
      

  4.   

    Query2.SQL.Add('select * from "d:\database\class.db" as kk where kk."Examname"=:Name');
    不可以直接写地址
    应该使用数据库控件来连接
      

  5.   

    .....
    ParamByName('Name').AsString := p1;
    .....