在设置query()DBTables中的SQL语句时..
select * from choice
join course 
on choice.course_no=course.course_no 
出现"Table is read only."的错误对话框..
为什么啊???
choice和course是表名.course_no为两表均有的字段名...

解决方案 »

  1.   

    你在你的那段语句之前加上:SET transaction isolation level read uncommitted
    在其后加上:SET transaction isolation level read committed
    然后再试试看
      

  2.   

    不妨将query的RequestLive属性设置为true
      

  3.   

    这样:
    SET transaction isolation level read uncommitted
    select * from choice join course 
    on choice.course_no=course.course_no
    SET transaction isolation level read committed还是不行........出现以下错误:
     "Invalid use of keyword.
    Token: select
    Line Number: 2"数据库属性为"存档"query的RequestLive属性己设置为true
      

  4.   

    那是因为你的数据库没有设置:
    我用的是SQL2000,但是也见过类似的问题,是因为要设置Databasename := …….databasename;
    就是你调用的查询组件的Databasename
      

  5.   

    Databasename := …….databasename;能不能说清楚点呢?
    谢谢!
      

  6.   

    with Tquery.Create(nil) do
    try
      DataBaseName := Hsdb.DatabaseName;  //此处是私有的Tdatabase定义
      close;
      SQL.Clear;
      SQL.Add( 'select ……');
      open;
    finally
      free;
    end;