VC用ADO连接SQL总是出现错误,怎么回事

fatal error C1083: Cannot open precompiled header file: 'Debug/bcd.pch': No such file or directory
指示错误: #include "stdafx.h"

给你一段资料你看看是否对你有帮助!! 数据库编程思想大都是一致的:打开数据库连接-》执行SQL语句-》获得查询结果-》关闭数据库连接。不同的数据库访问技术有不同的要求,,比如用C API诘问MySql数据库的时候还得释放查询结果集。
使用MFC ODBC连接数据库详解!
ODBC 访问数据库得配置数据源。配置ODBC 数据源:打开控制面板下的”数据源“,弹出“ODBC数据源管理器”,选择DSN选项卡-》添加->你选择的你的SQL sever 选项,单击完成。如图然后你再按照向导提示添加。 代码中用ODBC访问数据库你得加上afxdb.h头文件CDataBase 类连接数据库、CRecordSet类查询记录。
现在在VC访问数据库常用的是ADO访问。以下是打开数据库连接的编程步骤:
前面说的配置ODBC数据源、导入头文件afxdb.h 是第一步 接下来才能开始进行后面的编程
1.CDataBase m_cODBCDb; //创建一个连接对象
2.用CDataBase类的OpenEx()函数打开数据库连接。OpenEx()原型为 virtual BOOL OpenEx( LPCTSTR lpszConnectString, DWORD dwOptions=0 );
参数 lpszConnectString 为连接的数据源字符串
3.定义一个与上面数据库相关的查询对象
CRecordSet m_cODBCRec(&m_cODBCDb); //用这个查询对象的open方法就可以执行SQL语句与数据库交互了;
4.m_cODBCRec.open(); 获得记录集中的值的函数GetFileValue(); 函数原型 void GetFieldValue( short nIndex, CString& strValue ); //函数功能获得CRecordSet 结果集的值 参数说明:nIndex 字段名或者是字段的索引 strValue 接收字段值
/*
*函数名称:LinkSql()
*函数功能:用MFC ODBC打开数据库连接
*参数说明:无参数
*返回值:reB 成功返回TRUE 失败返回 FALSE
*/
//该函数代码可以直接拷贝使用
BOOL CLinkSql::LinkSql()
{
/*变量说明: m_dbstr 表示连接的数据源
* m_errmsg 表示错误信息
* m_db 是自己定义的MFC CDataBase类对象
*/
BOOL reB=TRUE;
CString m_dbstr,m_errmsg;
m_dbstr.Format("DSN=%s;UID=%S;PWD=%S","test","","");// 参数说明分别为 数据库名称,用户,口令 ,"",""
try{
if(m_db.IsOpen())
m_db.Close();
m_db.OpenEx(m_dbstr,CDatabase::noOdbcDialog);//通过ODBC来打开数据库
}
catch(CDBException* e)
{
reB=FALSE;
}
return reB;
}//后面的函数都是在数据库打开连接的基础上进行的查询,删除,增加操作
如果对你有帮助请回帖!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-05
说明你修改郭工程设置,设置bcd.h或者类似的文件生成预编译头,而这样的文件并不存在
或者没有再#include "stdafx.h"之前包含这样的头文件
选择每个文件,安Alt F7,然后检查C++设置是不是有预编译头设置追问

额。。。我安装的是英文版的,麻烦你能告诉我预编译头设置 在哪吗?我找不到
建工程时,我就是按着步骤来的file-new-projects-MFC AppWizard[exe]-bcd-ok-Dialog based-finsh

追答

如果按照这个步骤,不会出现这个问题,你一定修改过什么

追问

啊?那怎么办啊?你有时间能帮我看一下吗?我把程序给你发过去,你帮我看看。

追答

我建议你按ALT+F7在工程设置中挨个找,尤其是有precompiler header字样的设置
另外方法是自己重建一个工程,把代码拷贝进去试试

来自:求助得到的回答本回答被提问者采纳
第1个回答  2012-04-05
把debug或者release文件夹删掉,重新编译。
相似回答