我需要在一个只支持C语言的平台上实现与数据库的通信。可我只会MFC向导做一个简单的这样的程序。于是,我VC下作简单的实验,但都没有成功。我的问题是:1、用win32 console application 初始化的程序是否能调用ADO来实现连接数据库呢。
2、如果能,那么应该#include 哪些头文件,我写的时候,总是提示 _windows_ 重复。
如果不能,我还有些什么其它的办法。
2、如果能,那么应该#include 哪些头文件,我写的时候,总是提示 _windows_ 重复。
如果不能,我还有些什么其它的办法。
-----------------------------------------你可以用ODBC API来操作数据库http://www.vchelp.net/wyy/tour/odbc_api.asp
#include <afxwin.h>
#import "e:\program files\common files\system\ado\msado26.tlb" no_namespace rename("EOF","adoEOF")main()
{
OleInitialize(NULL); _ConnectionPtr m_pConnection;
HRESULT hr;
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
hr = m_pConnection->Open("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=vpc98","","",adModeUnknown);
_variant_t RecordsAffected;
m_pConnection->Execute("INSERT INTO users(ID,username,old,birthday) VALUES (1, 'Washington',25,'01/01/2001')",&RecordsAffected,adCmdText);
m_pConnection->Execute("UPDATE users SET old = old+1",&RecordsAffected,adCmdText);
_RecordsetPtr m_pRecordset = m_pConnection->Execute("SELECT COUNT(*) FROM users",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
m_pRecordset->Close();///关闭记录集
CString message;
message.Format("共有%d条记录",vCount.lVal);
AfxMessageBox(message);///显示当前记录条数
}