请先在SQL EXPLORER 中用你的SQL SERVER的别名或驱动程序连接数据库,
再用SQL EXPLORER中的SQL 输入框进行SQL的执行.如果成功说明DELPHI是
支持这种操作的,可能是你犯了一些低级错误导致不能插入和删除,对了!
还要提醒你在做除了SELECT 以外的SQL 语句的时候一定要用EXCSQL,而不能
用QUERY.OPEN.

解决方案 »

  1.   

    to l2000:
    sql explorer可以操作
    D中我是用dbgrid和dbnavigitor操作,
    只能查询和删除,不能插入和修改,
    可只要删除一条记录,就可以做其他操作了。
    在程序中,我没用query.open输入语句,用的是query的方法。
    所有的只度属性都已取消了.
    不用query,改用table也是一样。
    总提示该表不存在?
      

  2.   

    同样的操作,对默认库pubs中的表就可以操作。
    而对我建的库sample中的表xx就出问题。
      with query1 do
      begin
        Close;
        SQL.clear;
        sql.add('use sample');
        execsql;    Close;
        sql.clear;
        sql.add('select * from xx');
        open;
      end;
    可以查询到,表出现在dbgrid中,但有上边我说的那个问题。
    但。。
      with query1 do
      begin
        Close;
        SQL.clear;
        sql.add('use sample');
        execsql;    Close;
        sql.clear;
        sql.add('select * from xx');
        open;    delete;//@#$%^&^&%$#
      end;
    这样就可以在dbgrid中执行任何操作了?!
    我想的这个解决方法有点可笑。我是用database,query,datasoruse,dbgrid.我感觉原因好象出现在“当前库”上。
    用use sample似乎不能真正改变当前库从pubs到sample,
    而delete后,就使当前库变为sample了。
    是不是要用database的什么方法改变当前库?
      

  3.   

    天哪,原来是因为ODBC设的默认库是pubs!害得我但如何在程序中改变默认库呢?
    因为我的库是在程序中动态建的。