c语言可以连接access数据库??

作者&投稿:逮沾 (若有异议请与网页底部的电邮联系)
~ #import "C:\program files\common files\system\ado\msado15.dll " no_namespace rename( "EOF ", "adoEOF ")
//#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的方法.


单片机MCS-51汇编语言中的ACC.7,OV,ACC是什么意思
ACC就是A,是8位累加器,要具体对A上的每一位操作的时候,就要用ACC.*。ACC.7就是ACC的第七位,比如说A的值是11011010,那么ACC.7就等于1(第七位就是左数第二位)。OV是psw上的溢出标志位,开始为0,如果之前的运算结果溢出,OV就会变成1 ...

汇编语言怎么给累加器ACC赋值
亲,这个就用指令MOV就可以了。比如:立即数:MOV A,#30H 寄存器:MOV A,30H

c语言中OnAcc是什么意思
1、on代表条件。on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、ACC是累加器。运算器中运算前存放操作数、运算后存放运算结果的寄存器。

51单片机中ACC怎么用??
A和ACC的实质是一样的,对应地址都是0E0H,只是汇编在使用时,在格式上取了两个名字。你看看它们的使用方法,有的地方用A,有的地方用ACC,会发现有一定的规律。当其要进行位表示时,必须用ACC,比如要写成ACC.7,而不能写成A.7 但当其作为8位二进制数时,ACC和A都能用 但还是有区别 比如 INC...

16朗逸中控acc线是哪根
红色代表正极,黄色代表负极。定位器橙色线是用来检测汽车ACC状态的,跟设备震动报警和设防撤防有关,此线连接到车钥匙ACC档上,保证打开车钥匙后ACC线上有12-24V供电,关闭钥匙后ACC线上电压为0。特别提示橙色ACC线不接或者接错,会有震动误报警。不同的车型都会有所不同,根据acc的用处基本上都可以...

ACC国际交流学院招生条件中,对语言能力有具体要求吗?
ACC国际交流学院的招生对象: 身心健康的本国学生,已完成或即将完成12年义务教育,并具备明确的留学目标。他们需要展现出坚实的学术基础和积极的学习态度。语言要求: 需要至少有150课时的日本语学习经历,或具备相当于日本语测试4级以上的语言水平。这表明申请者在语言能力上已达到一定标准。经济条件: 申请...

女生说acc是什么意思
女生说acc的意思是:一、acc是英文单词接受的开头的三个字母,有允许接受添加为好友的意思,延伸意为私聊。二、暗搓搓:acc,来源于宁波话暗搓搓,指私下说或做。网络语 网络语言有两种含义:一是指跟互联网及计算机技术与应用有关的术语和词汇,二是人们利用计算机互联网媒介进行交际与表达活动时所...

一般MP3播放器能放ACC格式的音乐吗?
AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提...

单片机程序中的ACC如何使用啊(C程序)ACC累加器=A ACC.0=E0H 在keil4...
ACC在头文件已经定义地址了..你重复定义了吧..A反而是没定义的,ACC0是什么意思..你要的是ACC.0吗..c里面不是这样用的..E0H要这样0xE0才对..你是写汇编的一眼能看出来..但是写c..首先你还得先去补一下c语言基础

单片机在使用c语言编程时,寄存器ACC和a,寄存器B和b,有什么区别?_百度...
C语言是强类型的语言~大小写代表不同,ACC,B是头文件reg51.h(或reg52或其他,看你用什么单片机了~)里面定义了的~你可打开看下~a b 没定义,看你怎么 定义了~

柳北区19215376003: c语言程序 连接access 怎么实现 -
刘闹丽科: 采用odbc访问数据库,odbc是微软推出来的通用数据库统一访问接口,基本兼容所有的数据库,在c语言中的代码不会因为数据库不同,导致编码有差异.针对access也可以采用com组件编程,这样也可以访问.

柳北区19215376003: c语言连接access -
刘闹丽科: 将 SQLCHAR ConnStrIn[MAXBUFLEN] = “DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=test;CharSet=gbk;”; 部分改成 SQLCHAR ConnStrIn[MAXBUFLEN] = “Driver={Microsoft Access ...

柳北区19215376003: C语言连接Access数据库如何实现???标准的c语言 -
刘闹丽科: 1、C/C++与数据库交互,像 mssql/ mysql / oracle 等,一般都有成熟的第三方库,这些库里面无非就是封装了与数据库通讯的方式和通讯协议搜一下要用的数据库相关的 API 文档,会说得很清楚任何文件都是二进制数据,关键是数据存储的组织...

柳北区19215376003: c语言可以连接access数据库?? -
刘闹丽科: #import "C:\program files\common files\system\ado\msado15.dll " no_namespace rename( "EOF ", "adoEOF ") //#import "c:\program files\common files\system\ado\msado15.dll " rename ( "EOF ", "adoEOF ") no_namespace #...

柳北区19215376003: 如何在c程序中调用access数据库 -
刘闹丽科: c语言不能连接数据库,只能用文件保存数据;我在学习的时候也曾遇到过这样的问题,请教老师,老师告诉我C语言主要用来开发系统的,还有就是用来开发游戏的.一般用文件保存数据.不会用到数据库;要用数据库的语言有VB,java,c#,Dephi等等

柳北区19215376003: 请问各位大侠、怎么用C语言连接access数据库、最好能详细点儿写出步骤、如果可以的话,能给代码就更好了. -
刘闹丽科: 你先配置数据库 http://zhidao.baidu.com/question/209967914.html 然后举个例子,连接SQL 我连access的给你看一下 别忘了 mfc AfxOleInit(); 或者 win32 coInitial什么东东(初始化com的) // 打开数据库 strDBClass.Format(_T("Provider=...

柳北区19215376003: C语言连接Access数据库如何实现???标准的c语言 -
刘闹丽科: 好像没有接口函数,因为如果用FILE之类的文件模式或者是二进制方式读写mdb文件会很麻烦的,因为要考虑mdb文件相当复杂的格式解析,更关键的是微软的东西从来都不开源...

柳北区19215376003: C语言如何连接数据库(access) -
刘闹丽科: 你可以去百度上搜索一下, http://blog.sina.com.cn/s/blog_4a9a6166010006cv.html 这上面的我觉得就可以! 对于添加和删除 是sql语句 采纳哦

柳北区19215376003: C语言如何与ACCESS或MYSQL数据库连接? -
刘闹丽科: C连接zhidaoMySQL数据库需要 MySQL的头文件版和库可以参考权http://blog.chinaunix.net/u/8780/showart_277910.html

柳北区19215376003: C语言如何实现将excel导入access -
刘闹丽科: 查询和插入数据都使用SQL进行操作,可以在插入数据前用SQL查询一下数据是否有重复,重复就进行特殊处理.也可以在插入数据前不检查,直接插入,如果数据重复会报告错误,检测相应的错误代码,进行提示或者忽略均可. 补充:INSERT INTO 表名(字段名,……) VALUES (值,……)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网