
VS2010+ACCESS通过ODBC连接,查询数据库出提示检索记录出错...麻烦看下代码有哪些错误,菜鸟
//ODBC尝试自动将列值转换为所请求的类型RFX_Double(pFX,_T("[py].[编号]"),m_pno);RFX_Text(pFX,_T("[py].[汉字...
// ODBC 尝试自动将列值转换为所请求的类型
RFX_Double(pFX, _T("[py].[编号]"), m_pno);
RFX_Text(pFX, _T("[py].[汉字]"), m_hanzi);
RFX_Text(pFX, _T("[py].[拼音1]"), m_py1);
RFX_Text(pFX, _T("[py].[拼音2]"), m_py1);
RFX_Text(pFX, _T("[py].[拼音3]"), m_py3);
RFX_Text(pFX, _T("[py].[字段6]"), m_py6);
RFX_Double(pFX, _T("[zw].[编号]"), m_zno);
RFX_Text(pFX, _T("[zw].[拼音]"), m_py);
RFX_Text(pFX, _T("[zw].[藏文]"), m_zw);
void ChzzwDlg::OnBnClickedTrans()
{ // TODO: 在此添加控件通知处理程序代码 Cpy_MULTI m_pys;
UpdateData();
CStringW str;
GetDlgItemText(IDC_EDIT1,str);
int i=str.GetLength(); if(m_edit1.IsEmpty()) { MessageBox(L"请输入汉字"); return ; }
CStringW strSQL;
int j; CStringW item,request,last;
for (j=0;j<i;j++)
{ item = str.Mid(j,1);
strSQL.Format(_T("select 藏文 from zw where 拼音=\(select 拼音1 from py where 汉字=\'%s\'\) "),item);
if(!m_pys.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{ MessageBox(L"打开数据库失败!",L"数据库错误",MB_OK); return; } item.Format(_T("%s"),m_pys.m_zw);
last+=item; }
SetDlgItemText(IDC_EDIT2,last); m_pys.Close(); 展开
RFX_Double(pFX, _T("[py].[编号]"), m_pno);
RFX_Text(pFX, _T("[py].[汉字]"), m_hanzi);
RFX_Text(pFX, _T("[py].[拼音1]"), m_py1);
RFX_Text(pFX, _T("[py].[拼音2]"), m_py1);
RFX_Text(pFX, _T("[py].[拼音3]"), m_py3);
RFX_Text(pFX, _T("[py].[字段6]"), m_py6);
RFX_Double(pFX, _T("[zw].[编号]"), m_zno);
RFX_Text(pFX, _T("[zw].[拼音]"), m_py);
RFX_Text(pFX, _T("[zw].[藏文]"), m_zw);
void ChzzwDlg::OnBnClickedTrans()
{ // TODO: 在此添加控件通知处理程序代码 Cpy_MULTI m_pys;
UpdateData();
CStringW str;
GetDlgItemText(IDC_EDIT1,str);
int i=str.GetLength(); if(m_edit1.IsEmpty()) { MessageBox(L"请输入汉字"); return ; }
CStringW strSQL;
int j; CStringW item,request,last;
for (j=0;j<i;j++)
{ item = str.Mid(j,1);
strSQL.Format(_T("select 藏文 from zw where 拼音=\(select 拼音1 from py where 汉字=\'%s\'\) "),item);
if(!m_pys.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{ MessageBox(L"打开数据库失败!",L"数据库错误",MB_OK); return; } item.Format(_T("%s"),m_pys.m_zw);
last+=item; }
SetDlgItemText(IDC_EDIT2,last); m_pys.Close(); 展开
1个回答
展开全部
("select 藏文 from zw where 拼音=\(select 拼音1 from py where 汉字=\'%s\'\)
如果你的拼音不唯一的话不能这样写,可以select 藏文 from zw where 拼音 in (select 拼音1 from py where 汉字=‘’);
如果你的拼音不唯一的话不能这样写,可以select 藏文 from zw where 拼音 in (select 拼音1 from py where 汉字=‘’);
追问
我先想让它正常显示,拼音只选了拼音1,几乎都是拼音1,就是想让它正常运行出个结果了再修改。改成你这样了,就是select出来的结果有多个了,然后输出edit怎么弄?我是菜鸟不太会。
你看看我连数据库有问题没,就是查数据库语句都通不过去的。
你看我的输出有问题没?
追答
你现在的提示,表示你现在已经可以正常的连接数据库了,
查询语句通不过的话,最好是在查询语句的后面设置一个断点,看看生成的sql语句是什么然后放到sql的查询器里面自己调试一下
这种东西真没啥好办法,只能自己一点一点的调试
你说输出到edit,一般数据很多的你怎么输出啊?基本没有办法,除非你让用户自己选择一下,然后再进行修改
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询