ACCESS数据库文件名为union.mdb, 里面只有一个表member, 建立ODBC数据源连接到union.mdb, 数据源名称为union,用ClassWizard从CRecordset派生出一个类CMemberTable, 使用成员函数Open时,若在参数中写自定义的SQL语句,执行时总会弹出对话框,显示“FROM子句语法错误”,SQL语句为" SELECT * FROM member ", 将表member的名改为members、memberdd等均无效。
源码如下:
memberTable.Open(AFX_DB_USE_DEFAULT_TYPE, " SELECT * FROM member ");
当把第二个参数改为" SELECT * " 或 " DELETE member WHERE id = 3 "也发生同样的错误
似乎只要我写了SQL语句,就会发生这种错误。
我不明白,为什么总是显示" FROM子句语法错误"呢?
请高人指点一下

解决方案 »

  1.   

    字段名为id、name、sex、grade、college、telephone、photo、re
    将字段name改名为names,named等也无效
      

  2.   

    与字段名与表名有什么关系啊?没有滴rs.Open( CRecordset::dynaset,
             _T( "Select name from member" ) );试下
      

  3.   

    我试过了楼上的,不管用。
    网上很多关于"FROM子句语法错误"的帖子都说是由于字段名或表名和ACCESS的关键字或保留字相同,所有我试着改表名和字段名
      

  4.   

    刚才发现用" SELECT * FROM member"就会出现错误,若"SELECT"前无空格,即
    "SELECT * FROM member",好使
    若使用DELETE语句还是出错
    我注意检查了,"SELECT"前面的空格我没有用全角
      

  5.   

    CRecordset只能执行SELECT语句,而CDatabase则能执行UPDATE和DELETE等不返回结果的SQL语句
      

  6.   

    建议楼主还是使用字段名吧.SELECT name,age,id,addr FROM member另外,数据集对象open只能执行查询语句,如果希望使用其他的,还是老实用回CDatabase吧.