我开始用Access做的数据库,然后设置的ODBC里的数据源。
    然后用vc写了个查询的程序,使用ODbc的数据源。执行没问题。
    后来我把数据库转到SQLserver ,然后将ODBC里的数据源指向SQLserver。可用我的程序查询时,执行db.OpenEx(dsn, CDatabase::openReadOnly |           CDatabase::noOdbcDialog );m_pSet=new CRecordset(&db);没问题
可执行到m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,SQLstr);时就报错说“timeout expired",
  请问是怎么回事?谢谢大家帮忙!!

解决方案 »

  1.   

    m_pSet->Opem(CRecordset::forewardOnly,SQLstr);
      

  2.   

    我又试了试,发现用SQLServer自带的查询工具查询一条语句,居然用了30秒。
    可原来用Access时,同样的语句查询时间也就1秒左右。
      

  3.   

    呵呵,可能是机子问题吧,或者sqlserver没装好
      

  4.   

    我又在别的机器上装了sql server7.0,数据都相同,表1有30万条记录,表2有3万多条记录
    查询程序使用ODBC,数据源为SqlServer时所用的查询时间基本上都比数据原为Access的查询时间长.对于同一条语句,前者用1.6秒,后者只用了0.4秒但是建立数据库的时间,前者却比后者短.而且,最主要的是sql server的文件比Access的文件(没压缩)小很多,这是我想移植数据库到sql server的主要原因.可他的查询时间太令我失望了.我想这是不应该的呀. 还请高手多多指教.
      

  5.   

    谁有压缩Access数据库的程序或者源代码呀.程序最好是能在命令行下直接调用的.
    Access的文件太大了,如果不压缩.谢谢!!!!!!!!
      

  6.   

    什么字段类型不对,我用的是Import Data呀,应该自动转换的吧
      

  7.   

    应该不会的,你们没碰到大数据量的,象超市的商品资料,企业的产品资料,都有6位数的记录量时,发现ACCESS根本不行了,