Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server 2008-打开记录集时崩溃_Sql Server 2008_Mfc - Fatal编程技术网

Sql server 2008 SQL Server 2008-打开记录集时崩溃

Sql server 2008 SQL Server 2008-打开记录集时崩溃,sql-server-2008,mfc,Sql Server 2008,Mfc,我必须对交付给客户的软件进行维护。 此软件正在使用数据库,为了在我的计算机上执行一些调试会话,我必须安装SQL server 2008 R2和此软件使用的两个数据库(MyData和MyRecord)。 我在进行设置(登录、将数据库映射到sa用户)时遇到了一些问题,但我设法解决了这些问题。 现在我正试图运行该软件,但在初始化过程中,当它试图打开记录集时,它会崩溃。 首先,我执行以下操作以连接到数据库: ::CoInitialize(NULL); try { HRESULT h


我必须对交付给客户的软件进行维护。
此软件正在使用数据库,为了在我的计算机上执行一些调试会话,我必须安装SQL server 2008 R2和此软件使用的两个数据库(MyData和MyRecord)。
我在进行设置(登录、将数据库映射到sa用户)时遇到了一些问题,但我设法解决了这些问题。
现在我正试图运行该软件,但在初始化过程中,当它试图打开记录集时,它会崩溃。

首先,我执行以下操作以连接到数据库:

::CoInitialize(NULL);
try   
{   
    HRESULT hr = pConnection.CreateInstance("ADODB.Connection");   
    if (SUCCEEDED(hr))   
    {   
        pConnection->ConnectionTimeout = 0;   
        CString strConnect;
        strConnect.Format(_T("Data Source=MyRecord;uid=sa;pwd=sa123456;"));
        hr = pConnection->Open((_bstr_t)strConnect,"","", -1);
    }   
}
将p连接定义为:

_ConnectionPtr pConnection;
之后,我尝试使用以下代码从数据库“MyRecord”中读取一些数据:

CString sqlQuery = _T("select * from 通道1设置参数表");
try
{
    pRecordset.CreateInstance(_uuidof(Recordset));
    pRecordset->Open(_bstr_t(sqlQuery ),pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
} 
catch(_com_error   *e)  
{  
    AfxMessageBox(e->Description());   
}  
预编码集定义为:

_RecordsetPtr pRecordset;
当行“pRecordset->Open(…)”运行时,软件在msado15.tli文件的函数Recordset15::Open(…)中崩溃。
在这个Recordset15::Open函数中,raw_Open(…)函数返回DB_E_notified。
但是,我确信表dbo。通道1.设置参数表 存在于MyRecord数据库中。

错误是:

我不知道问题是在于SQL server配置还是代码。
这段代码在客户的PC上运行得非常好,因此我会处理一个配置问题。
提前谢谢

在此数据库的ODBC连接器中,未将“将默认数据库更改为”设置为MyRecord数据库。

我勾选了复选框,选择了数据库,现在它工作正常。
您的catch语句应该是catch(\u com\u error&e)


MFC通常通过指针抛出异常,但是“com错误”是一个参考。

客户电脑和您电脑上的语言和系统区域设置是否相同?通常是。客户的电脑都是中文的,所以我在笔记本电脑上也这么做了。不同之处在于Windows版本。客户使用的是中文简体版Windows XP,而我使用的是Windows 7 Ultimate版本,“区域和语言”中的所有设置都设置为中文简体。执行此操作时,您的catch语句应为catch(_com_error&e)。显示的错误消息是什么?示例:我刚刚更改了您评论后的代码。错误消息为“[Microsoft][ODBC SQL Server驱动程序][SQL Server]无效的对象名”通道1.设置参数表'."这意味着该表不存在,或者无法分析名称。请尝试在名称周围添加[]括号。您使用的数据库排序规则是什么?这与您的客户相同吗?