VC中通过ADO只能起到在标记删除的作用,并不能真正的删除,对于到这个问题,在网上找了好久,说什么的都有,始终也没有解决,很是困扰。有的说下个OLEDB for VF的驱动,我下了,然后执行"pack 表名",也不行啊;还有说要用独占方式打开,也有说在VF中编译个程序,然后在VC中调用。可是都很简要,很含糊,我并没有真正解决问题,请各位帮帮忙,给出具体的方法,详细些,最好是“方法+VC的代码”,我比较菜鸟。谢谢!

解决方案 »

  1.   

    VC中通过ADO只能起到在标记删除的作用,并不能真正的删除??谁说的??
    delete from tablename where 条件不行么?
      

  2.   

    能执行成功SQL语句就可以删除数据库记录.
      

  3.   

    不行啊,其他数据库都行,就DBF的不行,通过SQL语句进行删除,只是进行了删除标记,并没有真正的删除,用VF打开DBF表还可以看到,只是加了删除标记,真正删除还得在VF中执行pack命令,各位帮帮忙,如何能直接删除呢?
      

  4.   

    http://topic.csdn.net/t/20040924/10/3404419.html
      

  5.   


    _ConnectionPtr Conn; Conn.CreateInstance(__uuidof(Connection));
    Conn->CursorLocation = adUseClient;
    Conn->ConnectionTimeout = 2;
    Conn->Mode = adModeShareExclusive; //独占方式打开然后再
    Conn->Execute("pack 表名", NULL, NULL)
      

  6.   

    还是不行啊,我照着7楼的方法,如下:pConn.CreateInstance(__uuidof(Connection));
    pConn->ConnectionString="File Name=connSvrSQL.udl";  //udl文件测试能够成功
    pConn->CursorLocation = adUseClient;
    pConn->ConnectionTimeout = 1;
    pConn->Mode = adModeShareExclusive; //独占方式打开
    pConn->Open("","","",adConnectUnspecified);
    pConn->Execute("pack data", NULL, NULL);可是执行到pConn->Execute("pack data", NULL, NULL);时还是出现错误,怎么回事?
      

  7.   

    加异常处理看下,提示信息是什么.try
    {
    pConn.CreateInstance(__uuidof(Connection));
    pConn->ConnectionString="File Name=connSvrSQL.udl"; //udl文件测试能够成功
    pConn->CursorLocation = adUseClient;
    pConn->ConnectionTimeout = 1;
    pConn->Mode = adModeShareExclusive; //独占方式打开
    pConn->Open("","","",adConnectUnspecified);
    pConn->Execute("pack data", NULL, NULL);
    }catch(_com_error& e)
    {
           MessageBox(e.Description(), e.ErrorMessage());
    }
      

  8.   

    异常提示:No database is open or set as the current database
    这是什么意思啊?我已经装了vfp OLEDB驱动了,从微软官网下的。
      

  9.   

    基本上可以确定是你的连接字符串有问题了.
    把UDL文件里的内容发上来看下.
      

  10.   

    [oledb]
    ; Everything after this line is an OLE DB initstring
    Provider=VFPOLEDB.1;Data Source=E:\MyProjects\RepairManager;Mode=ReadWrite;Password="";Collating Sequence=MACHINE这是内容,可是我点测试,已经成功了啊。驱动程序我选的是
    Microsoft OLE DB Provider for Visual FoxPro
      

  11.   

    我也遇到这个问题没有解决,我使用delphi做的。后来我就直接删除文件,在复制一个新的进来。看具体情况,想想别的办法试试。
      

  12.   

    VFP中,Delete只是加上了删除标记的。pConn->Execute("pack data", NULL, NULL);
    把pack data改为Pack试试看?