社区
数据库
帖子详情
odbc如何根据程序输入的参数动态检索
nickshen
2005-03-16 03:43:58
我想根据程序传递过来的一个string变量(这是个地址)
查询数据库中有相同地址的纪录,我的数据库是一对多的纪录,就是table1可能对应多个table2纪录
所以需要类似于这样
m_strfilter = "table1.addr = table2.addr = str"
我这样写了以后调用requery(),怎么发现还是查找了数据库头一行的纪录,和我的要求不符,请问应该怎么写这样的语句在vc中
谢谢!!
...全文
117
6
打赏
收藏
odbc如何根据程序输入的参数动态检索
我想根据程序传递过来的一个string变量(这是个地址) 查询数据库中有相同地址的纪录,我的数据库是一对多的纪录,就是table1可能对应多个table2纪录 所以需要类似于这样 m_strfilter = "table1.addr = table2.addr = str" 我这样写了以后调用requery(),怎么发现还是查找了数据库头一行的纪录,和我的要求不符,请问应该怎么写这样的语句在vc中 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nickshen
2005-03-17
打赏
举报
回复
现在有点发现问题所在了,是我的m_strFilter.Format("table1.addr = table2.addr = '%s'",temp); 设置不对,有语法错误
导致在requery时,没有查询语句,从而使用了open(AFX_DB_USE_DEFAULT_TYPE,NULL),也就是查询了
默认的SQL语句
现在我应该怎么写这个filter,或是我怎么写这个open语句,下面报告where附近有语法错误
str1.Format("table1.Addr = table2.RSAddr and table1.Addr = '%s'",strAddr);
str = "select * from table1, table2 where ";
str += str1;
if ( m_pSet->IsOpen() ){
m_pSet->Close();
}
m_pSet->Open(CRecordset::dynaset,str);
谢谢!!
nickshen
2005-03-16
打赏
举报
回复
如果在加上try语句之前加上
if ( m_pSet->IsBOF() && m_pSet->IsEOF() ){
return;
}
程序运行结果表示是有数据的,没有那样返回!我的default sql语句是查询整个数据库
CString CLUSSSet::GetDefaultSQL()
{
m_strFilter = "table1.Addr = table2.Addr";
return _T("[dbo].[table1],[dbo].[table2]");
}
现在要根据返回的str重新查数据库,只要返回addr是str的一些纪录就可以了
难道我上面那样改动m_strfilter不对?
请指教,谢谢!!
oyljerry
2005-03-16
打赏
举报
回复
MoveFirst前先判断一下得到的记录集是否为空
nickshen
2005-03-16
打赏
举报
回复
m_pSet->m_strFilter.Format("table1.Addr = table2.Addr = '%s'",Addr);
if ( !m_pSet->Requery() ){
AfxMessageBox("Requery has failed");
return;
}
try{
m_pSet->MoveFirst();
}
catch( CDBException *e ){
AfxMessageBox("No records were found",MB_ICONEXCLAMATION);
e->Delete();
return;
}
照楼上的写法怎么还是找到数据库中第一个记录呢?莫非是movefirst不该用?请指教!谢谢!!
nickshen
2005-03-16
打赏
举报
回复
还有一个问题,在这之间,如果还想查询默认的数据库检索
是否要在检索前,调用getdefaulatsql()这样的语句
待会问题解决了就结帖
Kudeet
2005-03-16
打赏
举报
回复
m_strFilter.Format("table1.addr = table2.addr = '%s'",temp); //这个temp就是输入的动态参数
vc++ 应用源码包_1
从fnMyDownload开始,
程序
首先解析
输入
的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
明日科技C#开发入门及项目实战
实例153 根据日期
动态
建立文件 实例154 将长文件名转换成短文件名 实例155 获取所有逻辑磁盘目录 实例156 使用递归法删除文件夹中的所有文件 实例157 按行读取文本文件中的数据 实例158 使用缓冲流复制文件 实例159 ...
vc++ 应用源码包_2
从fnMyDownload开始,
程序
首先解析
输入
的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
vc++ 应用源码包_6
从fnMyDownload开始,
程序
首先解析
输入
的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
vc++ 应用源码包_5
从fnMyDownload开始,
程序
首先解析
输入
的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章