VC++中ADOBC控件与数据库连接有关问题
VC++中ADOBC控件与数据库连接问题
请高手指教一下。这是我写的一段代码(从书中现学现用):
#include "stdafx.h"
#include "AdoTest.h"
#include <afx.h>
#import "C:\Program Files\Common Files\System\ado\msado15.dll"
no_namespace rename("EOF", "adoEOF")
int main()
{
ConInitialize(NULL);
try
{
//
_ConnectionPtr pCon("ADODB.Connection");
//
_RecordsetPtr pRs("ADODB.Recordset");
pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data weather\\staioninf.mdf"," "," ",adConnectUnspecified);
//
pRs->Open("select * from dbo.staioninf",_variant_t((IDispatch *)pCon,ture),adOpenForwardOnly,adLockReadOnly,adCmdUnknown);
for(int i=0;i<2;i++)
{
CString province,city,stname,stationid;
float longitude,leight,latitude;
_variant_t var;
var = pRs->GetCollect(_variant_t("LONGITUDE"));
var.ChangeType(VT_I2);
longitude=var.iVal;
var =pRs->GetCollect(_variant_t("LATITUDE"));
var.ChangeType(VT_I2);
latitude=var.iVal;
var =pRs->GetCollect(_variant_t("LEIGHT"));
var.ChangeType(VT_I2);
leight=var.iVal;
var =pRs->GetCollect(_variant_t("PROVINCE"));
var.ChangeType(VT_BSTR);
province = var.bstrVal;
var =pRs->GetCollect(_variant_t("CITY"));
var.ChangeType(VT_BSTR);
city = var.bstrVal;
var =pRs->GetCollect(_variant_t("STNAME"));
var.ChangeType(VT_BSTR);
stname = var.bstrVal;
var =pRs->GetCollect(_variant_t("STATIONID"));
var.ChangeType(VT_BSTR);
stationid = var.bstrVal;
//
printf("%f\t%f\t%s\t%s\t%s\t%s\t%f\n",longitude,latitude,province,city,stname,stationid,leight);
pRs->MoveNext();
}
catch(CException * e)
{
e->ReportError();
e->Delete();
}
CoUninitialize();
return 0;
}
我不知道如何把sql server 2005 中的数据和vc相连,(并且numeric数据类型,int类型 以及char类型在vc中如何转换)。重要的是从进入vc++6.0开始如何一步步的建立,我一点头绪没有,书上也没有说,希望各路高手帮帮忙,小弟在这拜谢了。只要能从数据库中读出数据并且显示,剩下的我就知道该怎么做了!!谢谢!!!!!!
------解决方案--------------------
#import "C:\Program Files\Common Files\System\ado\msado15.dll“ / (在这个加个反斜杆试试)
no_namespace rename("EOF", "adoEOF")
------解决方案--------------------
我有这方面的例子,可以直接编译成功的。不过不知道你能不能看懂,明天拷贝过来传给你好了。
你可以留下QQ么。
------解决方案--------------------
写一个ADO操作数据库的类,直接用接口,调用。
也有现成别人写好的ADO封装类。****上就有下的
请高手指教一下。这是我写的一段代码(从书中现学现用):
#include "stdafx.h"
#include "AdoTest.h"
#include <afx.h>
#import "C:\Program Files\Common Files\System\ado\msado15.dll"
no_namespace rename("EOF", "adoEOF")
int main()
{
ConInitialize(NULL);
try
{
//
_ConnectionPtr pCon("ADODB.Connection");
//
_RecordsetPtr pRs("ADODB.Recordset");
pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\data weather\\staioninf.mdf"," "," ",adConnectUnspecified);
//
pRs->Open("select * from dbo.staioninf",_variant_t((IDispatch *)pCon,ture),adOpenForwardOnly,adLockReadOnly,adCmdUnknown);
for(int i=0;i<2;i++)
{
CString province,city,stname,stationid;
float longitude,leight,latitude;
_variant_t var;
var = pRs->GetCollect(_variant_t("LONGITUDE"));
var.ChangeType(VT_I2);
longitude=var.iVal;
var =pRs->GetCollect(_variant_t("LATITUDE"));
var.ChangeType(VT_I2);
latitude=var.iVal;
var =pRs->GetCollect(_variant_t("LEIGHT"));
var.ChangeType(VT_I2);
leight=var.iVal;
var =pRs->GetCollect(_variant_t("PROVINCE"));
var.ChangeType(VT_BSTR);
province = var.bstrVal;
var =pRs->GetCollect(_variant_t("CITY"));
var.ChangeType(VT_BSTR);
city = var.bstrVal;
var =pRs->GetCollect(_variant_t("STNAME"));
var.ChangeType(VT_BSTR);
stname = var.bstrVal;
var =pRs->GetCollect(_variant_t("STATIONID"));
var.ChangeType(VT_BSTR);
stationid = var.bstrVal;
//
printf("%f\t%f\t%s\t%s\t%s\t%s\t%f\n",longitude,latitude,province,city,stname,stationid,leight);
pRs->MoveNext();
}
catch(CException * e)
{
e->ReportError();
e->Delete();
}
CoUninitialize();
return 0;
}
我不知道如何把sql server 2005 中的数据和vc相连,(并且numeric数据类型,int类型 以及char类型在vc中如何转换)。重要的是从进入vc++6.0开始如何一步步的建立,我一点头绪没有,书上也没有说,希望各路高手帮帮忙,小弟在这拜谢了。只要能从数据库中读出数据并且显示,剩下的我就知道该怎么做了!!谢谢!!!!!!
------解决方案--------------------
#import "C:\Program Files\Common Files\System\ado\msado15.dll“ / (在这个加个反斜杆试试)
no_namespace rename("EOF", "adoEOF")
------解决方案--------------------
我有这方面的例子,可以直接编译成功的。不过不知道你能不能看懂,明天拷贝过来传给你好了。
你可以留下QQ么。
------解决方案--------------------
写一个ADO操作数据库的类,直接用接口,调用。
也有现成别人写好的ADO封装类。****上就有下的