我想写如下代码:
CString strSQL;
for (i=0;i<14;1++)
{
strSQL.Format(_T("select * from table where wendu=%f"),a[i])
pRecordset.Open()
然后取值赋值。
最后
pRecordset.Close(); } 我的目的挺简单的,就想让记录集循环打开不同的记录我该如何操作呢?
CString strSQL;
for (i=0;i<14;1++)
{
strSQL.Format(_T("select * from table where wendu=%f"),a[i])
pRecordset.Open()
然后取值赋值。
最后
pRecordset.Close(); } 我的目的挺简单的,就想让记录集循环打开不同的记录我该如何操作呢?
解决方案 »
- WSASend出错返回183(使用C++SocketsLibrary库)
- C++转DELPHI
- Windows CE上,很多GDI函数识别不了,一些在PC上的程序如何移植到手持设备上来?
- 求intel的ijl库及jpeg读取示例源代码
- 求救...CStatic怎么用啊?
- 怪事!我的系统装了摄像头的驱动程序后可以视频,但是关机后再开机的话,驱动程序全部丢失,又要重新装过???
- 将Sql_Server的一张表导入到Access
- 哪里有音频格式大全
- 为什么程序员的薪水上不去?因为?。。。那位大哥能发表一下高见?
- 如何在子类中隐藏主框架程序
- msxml 解析 xml 文档时如何才能不区分大小写?
- GetKeyNameText不能获取功能键名称,那要如何获取?
_RecordSetPtr pRecordset[14];//类型好象不对,但类似,就是和你定义的类型是一样的
CString strSQL;
for (i=0;i<14;1++)
{
strSQL.Format(_T("select * from table where wendu=%f"),a[i])
pRecordset[i].Open();
}//如果是临时取数据显示然后就不需要了,那就不这么用,直接按你的程序就行了
下面是我用ADO操作数据的例子,程序没问题,你参考:
m_pConn->Open("Provider=SQLOLEDB.1;Server=PC-201012170947\\WINCC;DataBase=;UID=sa;PWD=","","",adConnectUnspecified);
这是SQL 2000的连接字符串,你把它加到下面的相应的语句里:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
头文件里类里:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;CPP文件里:
BOOL CDatabaseDll::OpenDatabaseFun(_ConnectionPtr pConnection,_RecordsetPtr pRecordset,_CommandPtr pCommand)
{
BOOL Result=TRUE;
HRESULT hr;
try
{
hr = pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
pConnection->ConnectionTimeout = 10;
// hr = m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\NW.mdb","", "", adModeUnknown);//这是OFFICE2003以下的
hr = pConnection->Open("Provider=Microsoft.Ace.Oledb.12.0;Data Source=D:\\bagayalu.accdb;Jet OLEDB:Database Password=123456","", "", adModeUnknown);//这是OFFICE2007以上的,包括OFFICE2010,这个连接字符串就是在OFFICE2010下用的,没问题
//m_pConnection->PutDefaultDatabase ((_bstr_t)"DB");//设置默认数据库
pCommand.CreateInstance(__uuidof(Command));
pCommand->CommandTimeout = 5;
pCommand->ActiveConnection = pConnection;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
Result=FALSE;
return Result;
}
_variant_t var;
float v1,v2,v3,v4;
CString Re;
pRecordset.CreateInstance(__uuidof(Recordset));
try
{
pRecordset->Open("SELECT * FROM 表1",// 查询DemoTable表中所有字段
pConnection.GetInterfacePtr(),// 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("v1");
if(var.vt != VT_NULL)
v1=var.fltVal;
// strName = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("v2");
if(var.vt != VT_NULL)
v2=var.fltVal;
var = m_pRecordset->GetCollect("v3");
if(var.vt != VT_NULL)
v3=var.fltVal;
var = m_pRecordset->GetCollect("v4");
if(var.vt != VT_NULL)
v4=var.fltVal;
var = m_pRecordset->GetCollect("re");
if(var.vt != VT_NULL)
Re = (LPCSTR)_bstr_t(var);
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
Result=FALSE;
return Result;
}
return Result
就是这么定义,我当初在WIN98下定义了56个这种类型的变量进行数据处理