delete * from tablename这个SQL语句不对吧

解决方案 »

  1.   

    就是啊,好象是delete tablename
      

  2.   

    delete from table_name where id = 3
    truncate table_name ----------- 删除表中所有行,仍保持表的完整性
    drop table table_name --------------- 完全删除表
      

  3.   

     兄弟们,delete * from tablename,没错的,另外truncate table_name 是不是sql server的语法啊,odbc上是不是不支持啊,这两天我发现点问题,一个datasource有几个表,我用CRecordset继承了几个子类来,生成了几个记录集,我的database指针来自与其中一个记录集,
    pdb=m_pSet->m_pDatabase,然后删除几个记录集时,偶尔出现这种异常,大家探讨一下我这么做出错的原因,当每一个recordset单独做时,是不出错的,大家亲自调试以下告诉我怎么回事
      

  4.   

    同意kane_yj的看法,这是DDL的用法,我以前也遇到过这样的问题
      

  5.   

    兄弟,这是getrecordcount中的一个bug,在VB中也有这样的问题,RecordCount不能正确反映当前记录集中记录的个数,它与你打开记录集合时设置的游标类型 CursorType有关,如果你打开时将该项设为表类型,它是不会有这样的问题。解决的方法是重新Requery一下,如果还不行,就将记录Close然后重新Open!
      

  6.   

    我的database指针来自与其中一个记录集这里不对吧,还是自己建立一个的好,每个CDatabase打开时候会新开辟一个线程,然后内部还会保存一个用本CDatabase打开的CRecordset列表,每个CDatabase最多打开50个Recordset,建议每个打开的用完后关闭,否则容易出错。
      

  7.   

      我用的是snapshot型的记录集,能声明cursortype为表类型吗?我测试了,先关闭记录集(几个),然后
    pdb->ExecluteSQl("delete * from table_name0");
    pdb->ExecluteSQl("delete * from table_name1");
    ....
    m_myset.open();
    //m_myset.Requery();没用,
    while(!m_myset.IsEOF())
    {  m_myset.MoveNext();
       //m_myset.Requery()//加上此句后,立马ISEOF()为true,不加此句将得到上次的未删除前的记录数
    }
    int n=m_myset.GetRecordCount();
    回xj_h():
    的确,为每个CRecordset建一个database会没问题,但是速度不理想啊,我为的是加快速度。我的想法是谁能想出好办法,修改从一个记录集的m_pDatabase得到的这个CDatabase对象,使它能安全的晴空其所有表内容,另外是在odbc下.
    另外大家讨论。同一个datasource的多个snapshot记录集的m_pDatabase所指的database对象之间有什么异同呢?欢迎大家一块跟我把问题挖深!!
      

  8.   

    同一个datasource的多个snapshot记录集的m_pDatabase所指的database对象之间有什么异同呢?欢迎大家一块跟我把问题挖深!! datasource和CDatabase和CRecordset没有任何关系,不是一种东西,没有可比性
    创建CRecordset的时候用哪个CDatabase指针,那它的m_pDatabase就是哪个,你可以用同一个CDatabase创建多个CRecordset啊,比如
    CDatabase db;
    db.OpenEx();
    CRecordset rs1(&db);
    CRecordset rs2(&db);
    .....的确,为每个CRecordset建一个database会没问题,但是速度不理想啊,没有让你给每个CRecordset建database啊,至于速度,你试试看,有区别么?
    当然前提是你只Open一个CDatabase
      

  9.   

    回xj_h() :
    感谢你的发言。你说的没错,我也想你那么干,但是我的程序已经派生了recordset子类,我不想再定义一个database了,因为我们的程序不专做数据库,只是用一下而已。我的本意是,在recordset的实例中,用m_pSet->pDatabase来干这些活,你还有招吗?