c语言可以连接access数据库??
//#import "c:\program files\common files\system\ado\msado15.dll " rename ( "EOF ", "adoEOF ") no_namespace
#define CREATEiNSTANCE(sp,riid) { HRESULT _hr =sp .CreateInstance( __uuidof( riid ) ); \
if (FAILED(_hr)) _com_issue_error(_hr); }
#define RsITEM(rs,x) ((rs-> Fields-> Item[_variant_t(x)]-> Value))
class CHmbAdoDB
{
public:
BOOL m_bOpen;
_ConnectionPtr m_DbConn;
CString m_ErrMsg;
CString m_SQLState;
long mSqlCode;
public:
void Cancel();
BOOL IsOpen();
void RollbackTrans();
void CommitTrans();
long BeginTrans();
void Close();
BOOL Open(LPCSTR lpszConnect);
BOOL Execute(LPCTSTR lpSQL);
void ProviderError();
CHmbAdoDB()
{
}
virtual ~CHmbAdoDB()
{
}
};
class CHmbAdoDBRs : public CObject
{
public:
_RecordsetPtr m_Rs;
public:
CHmbAdoDBRs();
virtual ~CHmbAdoDBRs();
BOOL Open( CHmbAdoDB *pDB, LPCSTR szSource,long option=-1);
void Close();
void GetRs(_variant_t x,_bstr_t &ret);
void GetRs(_variant_t x,CString &ret);
BOOL IsEOF();
BOOL IsOpen();
BOOL MoveNext();
BOOL MovePrev();
BOOL MoveFirst();
BOOL MoveLast();
};
#endif // !defined(AFX_RfidAdoDB_H__7C539954_1C62_47B6_AB6E_1A5BB73A67E5__INCLUDED_) truct InitOle
{
InitOle() { ::CoInitialize(NULL); }
~InitOle() { ::CoUninitialize(); }
} _init_InitOle_;
long mSqlCode;
BOOL CHmbAdoDB::Open(LPCSTR lpszConnect)
{
try
{
CREATEiNSTANCE(m_DbConn,Connection);
m_DbConn-> Open(lpszConnect, " ", " ", adModeUnknown );
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}
return TRUE;
}
void CHmbAdoDB::Close()
{
if( IsOpen() )
{
m_DbConn-> Close();
}
}
long CHmbAdoDB::BeginTrans()
{
return m_DbConn-> BeginTrans();
}
void CHmbAdoDB::CommitTrans()
{
m_DbConn-> CommitTrans();
}
void CHmbAdoDB::RollbackTrans()
{
m_DbConn-> RollbackTrans();
}
void CHmbAdoDB::Cancel()
{
m_DbConn-> Cancel();
}
BOOL CHmbAdoDB::IsOpen()
{
return ( (m_DbConn-> GetState() != 0) ? TRUE : FALSE );
}
BOOL CHmbAdoDB::Execute(LPCTSTR lpSQL)
{
if (!IsOpen())
{
AfxMessageBox( "Network error, Database do not open. ");
return FALSE;
}
CString strSQL(lpSQL);
strSQL.TrimLeft();
strSQL.TrimRight();
try
{
m_DbConn-> Execute(_bstr_t(strSQL), NULL, adExecuteNoRecords);
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}
return TRUE;
}
void CHmbAdoDB::ProviderError()
{
// Print Provider Errors from Connection object.
// pErr is a record object in the Connection 's Error collection.
ErrorPtr pErr = NULL;
if( (m_DbConn-> Errors-> Count) > 0)
{
long nCount = m_DbConn-> Errors-> Count;
// Collection ranges from 0 to nCount -1.
for(long i = 0; i < nCount; i++)
{
pErr = m_DbConn-> Errors-> GetItem(i);
mSqlCode = pErr-> NativeError;
m_ErrMsg.Format( "SQLCODE : %ld\t%s ",mSqlCode, LPCTSTR(pErr-> Description));
m_SQLState.Format( "%s ",(char*)pErr-> SQLState);
printf( "%s // %s\n ",m_SQLState,m_ErrMsg);
}
}
m_DbConn-> Errors-> Clear();
}
CHmbAdoDBRs::CHmbAdoDBRs( )
{
}
CHmbAdoDBRs::~CHmbAdoDBRs()
{
}
BOOL CHmbAdoDBRs::Open( CHmbAdoDB *pDB, LPCSTR szSource,long option )
{
CString strSQL;
strSQL = CString(szSource);
strSQL.TrimLeft();
strSQL.TrimRight();
_variant_t vRecsAffected(0L);
// CREATEiNSTANCE( m_Rs,Recordset) ;
// m_Rs-> PutRefActiveConnection( pDB-> m_DbConn );
try
{
m_Rs = pDB-> m_DbConn-> Execute(_bstr_t(strSQL),
&vRecsAffected,
adOptionUnspecified);
m_Rs-> AddRef();
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockBatchOptimistic, adOptionUnspecified);
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockReadOnly, option);
// m_Rs-> Open(szSource,pDB-> m_DbConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic, adCmdText);
}
catch( _com_error &e)
{
//ErrorMessage();
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
catch(...)
{
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
return TRUE;
}
void CHmbAdoDBRs::Close()
{
m_Rs-> Close();
m_Rs-> Release();
}
void CHmbAdoDBRs::GetRs(_variant_t x,_bstr_t &ret)
{
ret = (m_Rs-> Fields-> Item[x]-> Value);
}
void CHmbAdoDBRs::GetRs(_variant_t x,CString &ret)
{
_bstr_t retVal;
try{
retVal = (m_Rs-> Fields-> Item[x]-> Value);
}
catch(...){
ret = " ";
return;
}
ret = CString((char*) retVal);
}
BOOL CHmbAdoDBRs::IsEOF()
{
return m_Rs-> adoEOF;
}
BOOL CHmbAdoDBRs::IsOpen()
{
return ( (m_Rs-> GetState() != 0) ? TRUE : FALSE );
}
BOOL CHmbAdoDBRs::MoveNext() { return (FAILED(m_Rs-> MoveNext()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MovePrev() { return (FAILED(m_Rs-> MovePrevious()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MoveFirst() { return (FAILED(m_Rs-> MoveFirst()) ? FALSE : TRUE ) ; }
BOOL CHmbAdoDBRs::MoveLast() { return (FAILED(m_Rs-> MoveLast()) ? FALSE : TRUE ) ; }
以上为一个ADO的封装类.
c语言如何连接access数据库
现在一般是用ADO的方法.
我来分享VB怎么连接访问Access数据库
VB是我们常常会见到的一款可视化程序设计语言,它的功能十分强大,因此有很多人会使用它,但是有时候我们需要用到VB来连接Access数据库,但是却无从下手,那么VB怎么连接访问Access数据库呢?不懂的朋友请看以下内容。方法\/步骤:1、Access,建立数据库,数据库命名为Database1.mdb。(注意:这里的后缀是...
请问各位大侠、怎么用C语言连接access数据库、最好能详细点儿写出步骤...
你先配置数据库 http:\/\/zhidao.baidu.com\/question\/209967914.html 然后举个例子,连接SQL 我连access的给你看一下 别忘了 mfc AfxOleInit(); 或者 win32 coInitial什么东东(初始化com的)\/\/ 打开数据库 strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:...
access数据库程序设计,与C语言有关系吗
尽管Access和C语言在功能和应用领域上有所不同,但这并不意味着它们之间没有交集。在实际项目中,开发者可能会使用C语言来开发Access数据库的应用程序,或者使用C语言编写数据库管理系统的一部分功能。因此,这两门语言虽然在表面上看似无关,但在实际应用中却可以相互补充,共同实现更加复杂和高效的数据...
在易语言中如何将数据添加到access数据库中
据库连接1.连接Access (取运行目录 () + “数据库名称”, “没数据库密码时为空”)。记录集1.置连接 (数据库连接1)。记录集1.打开 (“SELECT * FROM 数据库表名”, #SQL语句, )。记录集1.添加 ()。记录集1.写文本 (“姓名”, 编辑框_姓名.内容)。记录集1.写文本 (“身份证号”,...
c语言能不能与ACCESS数据库开发!
能,当然能 http:\/\/www.vckbase.com\/code\/listcode.asp?mclsid=11&sclsid=1117&page=1 参考资料:www.vckbase.com
c语言程序实现access数据库连接。
显然你是c语言的新手 或者是数据库的新手了,,,这个一定是有的,这个百度搜索会更好,因为他用的是c++中类来表现的。这样希望你回来看问题的时候,会觉得自己的问题提得很搞笑的
用C#语言连接远程access数据库的字符串怎么写?具体点,我是新手,请大家...
如果有VS教你一个最简单的方法。打开VS--》菜单:工具--》连接到数据库。数据库连接成功后,在服务器资源管理器选项卡中能看到这个连接,然后找到这个连接,右键属性,在连接字符串里能看到这个连接字符串(用用户名和密码连接的,密码为*显示,自己手动改过来)。
access数据库程序设计,与C语言有关系吗
尽管Access和C语言在功能和应用场景上有所不同,但在实际项目开发中,两者可以很好地协同工作。例如,在构建一个数据库驱动的应用程序时,可以使用Access进行数据库设计和管理,同时使用C语言进行应用程序的开发,通过API或接口实现数据的交互。作为计算机教师,我可以确认这两者是独立的领域。了解Access数据库...
如何进行C#连接Access数据库的细节操作
OleDbConnection 是用OLEDB方法连接数据库所必需的。OleDbDataAdapter和OleDbCommandBuilder用来生成DataSet,完成数据库更新。与OleDbDataAdapter和OleDbCommandBuilder相对应,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL语言为指令的数据库更新。假设在D:盘创建了Access数据库,其路径为d:\\\\0DBAcs\\\\account.mdb,数据库中有一张...
如何在c程序中调用access数据库
c语言不能连接数据库,只能用文件保存数据;我在学习的时候也曾遇到过这样的问题,请教老师,老师告诉我C语言主要用来开发系统的,还有就是用来开发游戏的。一般用文件保存数据。不会用到数据库;要用数据库的语言有VB,java,c#,Dephi等等