// adoconnARE.h: interface for the CadoconnARE class.
//
//////////////////////////////////////////////////////////////////////
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
#if !defined(AFX_ADOCONNARE_H__A543BEA8_DFBE_48A2_B8D5_E150D9C01566__INCLUDED_)
#define AFX_ADOCONNARE_H__A543BEA8_DFBE_48A2_B8D5_E150D9C01566__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CadoconnARE
{
public:
CadoconnARE();
virtual ~CadoconnARE();
//添加一個指向Connection物件的指標:
_ConnectionPtr m_pConnection;
//添加一個指向Recordset物件的指標:
_RecordsetPtr m_pRecordset;
// 初始化—連接資料庫
void OnInitADOConn();
// 執行查詢
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
// 執行SQL陳述句,Insert Update _variant_t
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};
#endif // !defined(AFX_ADOCONNARE_H__A543BEA8_DFBE_48A2_B8D5_E150D9C01566__INCLUDED_)
// adoconnARE.cpp: implementation of the CadoconnARE class.
//
//////////////////////////////////////////////////////////////////////
// ARE收發板資料
#include "stdafx.h"
#include "NNARE.h"
#include "adoconnARE.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CadoconnARE::CadoconnARE()
{
}
CadoconnARE::~CadoconnARE()
{
}
// 初始化—連接資料庫
void CadoconnARE::OnInitADOConn()
{
// 初始化OLE/COM庫環境
::CoInitialize(NULL);
try
{
// 創建Connection物件
m_pConnection.CreateInstance("ADODB.Connection");
// 設定連接字串,必須是BSTR型或者_bstr_t型別
_bstr_t strConnect = "Provider=SQLOLEDB;Server=SERVER;Database=DATA;uid=USER;pwd=PASSWORD";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉例外
catch(_com_error e)
{
// 顯示錯誤資訊
AfxMessageBox(e.Description());
}
}
// 執行查詢
_RecordsetPtr& CadoconnARE::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 連接資料庫,如果Connection物件為空,則重新連接資料庫
if(m_pConnection==NULL)
OnInitADOConn();
// 創建記錄集物件
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的記錄
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
}
// 捕捉例外
catch(_com_error e)
{
// 顯示錯誤資訊
AfxMessageBox(e.Description());
}
// 回傳記錄集
return m_pRecordset;
}
// 執行SQL陳述句,Insert Update _variant_t
BOOL CadoconnARE::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已經連接資料庫
if(m_pConnection == NULL)
OnInitADOConn();
// Connection物件的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 引數RecordsAffected是操作完成后所影響的行數,
// 引數Options表示CommandText的型別:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存盤程序;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void CadoconnARE::ExitConnect()
{
// 關閉記錄集和連接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 釋放環境
::CoUninitialize();
}
電腦A插入資料到SQL資料庫,回傳成功,資料庫卻沒有資料
同樣的程式在其它電腦B卻是正常的
但是電腦A查詢資料庫,獲取結果集都是正常的
不知這是什么原因引起的
uj5u.com熱心網友回復:
也許是SQL服務器配置的問題,先從客戶端查起uj5u.com熱心網友回復:
關閉UAC、防火墻、殺毒軟體、……以管理員身份運行
先在查詢分析器中手動執行SQL陳述句成功后,再在代碼中使用相同的SQL陳述句。
uj5u.com熱心網友回復:
也許資料庫是只讀模式啦,檢查下uj5u.com熱心網友回復:
問題應該是電腦或是資料庫的相關配置問題吧uj5u.com熱心網友回復:
連接資料庫使用的用戶對指定表沒有插入權限?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/70013.html
標籤:數據庫
上一篇:MFC變成中ADO連接資料庫時msado15.tli中的GetCollect函式出錯
下一篇:QT5 GUI程式
