C语言连接Access数据库如何实现???标准的c语言

2025-06-26 23:58:16
推荐回答(2个)
回答1:

1、C/C++与数据库交互,像 mssql/ mysql / oracle 等,一般都有成熟的第三方库,这些库里面无非就是封装了与数据库通讯的方式和通讯协议搜一下要用的数据库相关的 API 文档,会说得很清楚任何文件都是二进制数据,关键是数据存储的组织方式通用扩展名的文件,像gif/doc/jpg/wav,格式都是固定的。

2、举个例子,连接SQL:

  // 打开数据库
  strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s"), m_strUnEntryptMdbFilePath,m_strMDBPassword);
  // 创建连接
  HRESULT hr = m_pConnection.CreateInstance(_uuidof(Connection));
  _ConnectionPtr m_pConnection->Open(m_strDBClass,_T(""),_T(""),adConnectUnspecified);
  // 声明表单指针
  _RecordsetPtr pBandRecordset;
  pBandRecordset.CreateInstance(__uuidof(Recordset));
  // 执行语句
  CString strSQL(L"SELECT * FROM [Band]");
  m_pConnection->Execute((LPCTSTR)strSQL,NULL,0);
  // 提取某一项 例如BandInfo
  int iBandInfo = wcscmp(colum, L"BandInfo");
  while(!recordsetPtr->adoEOF)
  {
  var = recordsetPtr->GetCollect(colum);
  if(var.vt != VT_NULL)
  strName = (LPCSTR)_bstr_t(var);
  recordsetPtr->MoveNext();
  }

回答2:

好像没有接口函数,因为如果用FILE之类的文件模式或者是二进制方式读写mdb文件会很麻烦的,因为要考虑mdb文件相当复杂的格式解析,更关键的是微软的东西从来都不开源,你无从解析它的文件格式!
最好的方法就是调用微软提供的数据库访问接口函数,比如使用ODBC\DAO\OLE DB\ADO等封装好的类库中的函数,这样可以避免解析文件之类的繁琐工作,还能最大限度地发挥针对不同版本的mdb文件解析的兼容性,最底层的代码已经是封装成dll的,你也是想看也看不到的。