我想问一下,用MFC联接ORACLE数据库你们有代码让我看看么?或者告诉我怎么联好。我联接上以后就没有反应了,我联接上数据库中的某个表后,在运行程序的时候(好象是在联接数据库,但是很慢、很慢)就是打不开,也不是死机,也出现不了程序界面,但是在任务管理器里还可以看见它。为什么?thanks!!
解决方案 »
- CHeaderCtrl 消息
- SDI 的白色部分怎样显示Tab?用m_wndSplitter.CreateStatic(this,1,1);,然后用CreateView显示,报错。
- 单线程到多线程转换
- 讨论有份,用过C++ iostream的请进
- 会飞了的菜鸟+
- 用HTML Help WorkShop 制作.chm文件的问题?
- vc++里的怪现象。。清华教授犯下的错误!!祝参与的朋友们中秋节快乐。合家团圆,谢谢!!给分哦。
- 请教MFC多文档如何显示出自定义的空文档视图
- 如何用一个循环使IP地址自动加1如把10.0.0.3变为10.0.0.4
- VC编译提示对话框资源ID没有定义,怎么解决?
- CCtrlList怎么用啊?马上给银子
- 怎么用memfile来播放WMV,ASF,和MPEG-2文件
CHAR *szAttributes =
"DSN=student\0DESCRIPTION=student\0"
"SERVER=server name\0"
"DATABASE=student\0";
if (FALSE == SQLConfigDataSource(NULL,ODBC_CONFIG_DSN,"Oracle ODBC Driver\0",szAttributes))
AfxMessageBox("配置系统数据源失败,请手动配置!");
//logon the server
if(dlg.DoModal()==IDOK)
{
szServer=dlg.m_strServer;
szUser=dlg.m_strUser;
szPwd=dlg.m_strPwd; CString strConnect;
strConnect.Format("SERVER=%s;DSN=student;UID=%s;PWD=%s",szServer,szUser,szPwd);
if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib|CDatabase::noOdbcDialog))
{
AfxMessageBox("无法登录!请确认服务器、用户名和密码正确!");
return false;
}
}
else
exit(0);2.ADO _bstr_t source("Driver={Oracle Server};Data Source=student;");
_bstr_t user("username");
_bstr_t pwd("password");
try{
hr=m_connection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr=m_connection->Open(source,user,pwd,16);
else
MessageBox("Connection Error");
if(SUCCEEDED(hr))
hr=m_recordset.CreateInstance(_uuidof(Recordset));
else
MessageBox("Open Error");
if(SUCCEEDED(hr))
m_fConnected=TRUE;
else
m_fConnected=FALSE;
}
catch(_com_error &e)
{
MessageBox(e.ErrorMessage());
m_fConnected=FALSE;
}
if(!m_fConnected)
MessageBox("ADO数据源初始化失败");
else
{
m_strSource=(const char*)source;
AfxMessageBox(m_strSource);
}
E:\Oracle\ORADATA\repair>imp sjt/sjt file=0310sjt.dmpImport: Release 8.1.5.0.0 - Production on 星期二 3月 11 10:40(c) Copyright 1999 Oracle Corporation. All rights reserved.
已连接到:Oracle8i Release 8.1.5.0.0 - Production
With the Java option
PL/SQL Release 8.1.5.0.0 - ProductionIMP-00010: 不是有效的导出文件,标题检验失败
IMP-00000: 未成功终止导入为什么??谢谢相告!!
其中m_pMyDb是_ConnectionPtr类型,
Datasource是CString类型,内容是:
Provider=MSDAORA.1;Password=你的密码;User ID=你的用户名;Data Source=你的服务名;Persist Security Info=Truetry
//检查数据库连接是否正常
{
m_pMyDb->ConnectionTimeout=10;
if(m_pMyDb->State!=adStateClosed)
{
m_pMyDb->Close();
m_pMyDb->Open((_bstr_t)Datasource,"","",-1);
}
else
{
m_pMyDb->Open((_bstr_t)app->Datasource,"","",-1);
}
}
catch(...)
{
if(m_pMyDb->State==adStateClosed)
{
MessageBox("无法连接数据库,请重新设置");
return;
}
}
我是刚注册进来的,没有发帖按钮。
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=5949
rc=SQLConnect(hdbc,server,SQL_NTS,uid,SQL_NTS,pwd,SQL_NTS);
就出错了。
UINT InitHdbc() //初始化数据库
{
if(SQLAllocEnv(&henv)!=SQL_SUCCESS)return FALSE;
SQLAllocConnect(henv,&hdbc);
// SQLSetConnectOption(hdbc, SQL_LOGIN_TIMEOUT, 5);
rc=SQLConnect(hdbc,server,SQL_NTS,uid,SQL_NTS,pwd,SQL_NTS);
if(rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO)
{
if(hdbc != NULL) SQLFreeConnect(hdbc);
if(henv != NULL) SQLFreeEnv(henv);
AfxMessageBox("数据变量 hdbc 初始化失败!"); return FALSE;
} rc=SQLAllocStmt(hdbc,&hstmt);
if(rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO)
{
rc=SQLFreeStmt(hstmt,SQL_CLOSE);
rc=SQLFreeStmt(hstmt,SQL_DROP);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
AfxMessageBox("数据变量 hstmt 初始化失败!"); return FALSE;
}
Trace_Program("数据库初始化完毕。"); return TRUE;
}