自己看别人看了没用,UNICODE下连接数据库
2015-09-11 13:16
477 查看
// adoTestDlg.cpp : implementation file // #include "stdafx.h" #include "adoTest.h" #include "adoTestDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CadoTestDlg dialog CadoTestDlg::CadoTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CadoTestDlg::IDD, pParent) { //m_pOracleDb = new CADODatabase(); m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CadoTestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CadoTestDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &CadoTestDlg::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &CadoTestDlg::OnBnClickedCancel) ON_BN_CLICKED(IDC_BUTTON1, &CadoTestDlg::OnBnClickedButton1) END_MESSAGE_MAP() // CadoTestDlg message handlers BOOL CadoTestDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } void CadoTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CadoTestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this function to obtain the cursor to display while the user drags // the minimized window. HCURSOR CadoTestDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CadoTestDlg::OnBnClickedOk() { // TODO: Add your control notification handler code here InitPacsDB(); } BOOL CadoTestDlg::InitPacsDB() { //Provider = MSDAORA;Data Source=%s;User Id = %s;Password = %s; CString strOracleConn; OnBnClickedConnecttest(); return false; //strOracleConn.Format(_T("Provider=OraOLEDB.Oracle;Data Source=%s;User Id=%s;Password=%s;"), // "ORACLE247","hhpacs","hhpacs"); //if(!m_pOracleDb->Open(strOracleConn)) //{ // return FALSE; //} //CADORecordset rs; //CString strSelectSQL; //bool bQuerySucc; //int iQueryCount; //CString strCurPatId; ////strSelectSQL = "select * from accesstable"; //strSelectSQL = _T("insert into accesstable values(1111,'1','111111','1')"); //rs = CADORecordset(m_pOracleDb); //m_pOracleDb->Execute(strSelectSQL); //return false; //bQuerySucc = rs.Open((LPCTSTR)strSelectSQL); //iQueryCount = rs.GetRecordCount(); //while(!rs.IsEof()) //{ // rs.GetFieldValue( _T("ACCCOMMENT"), strCurPatId); // rs.MoveNext(); //} //rs.Close(); //return true; } void CadoTestDlg::OnBnClickedConnecttest() { // TODO: 在此添加控件通知处理程序代码 CString strDataSource; //strDataSource.Format("Provider=OraOLEDB.Oracle.1;Password=%s;Persist Security Info=True;User ID=%s;Data Source=%s", // m_strPassword,m_strUserName,m_strDataSource); strDataSource.Format(_T("Provider=OraOLEDB.Oracle;Data Source=%s;User Id=%s;Password=%s;"), _T("ORACLE247"),_T("hhpacs"),_T("hhpacs")); AfxMessageBox(strDataSource); ::CoInitialize(NULL); ::_CommandPtr pCommand=NULL; //---------------- try { HRESULT hr; ::_ConnectionPtr pConn=NULL; hr = pConn.CreateInstance(__uuidof(::Connection) ); if( SUCCEEDED(hr) ) { pConn->CursorLocation = ::adUseClient; //pConn->PutConnectionTimeout(5); hr = pConn->Open( _bstr_t(strDataSource), _bstr_t(_T("")), _bstr_t(_T("")), ::adModeUnknown/*adModeShareDenyWrite*/); if(SUCCEEDED(hr)) { pCommand.CreateInstance(__uuidof(::Command) ); pCommand->ActiveConnection = pConn; AfxMessageBox(_T("数据连接测试成功!")); //pConn->Close(); } else { AfxMessageBox(_T("数据连接测试失败!")); return ; } } else { AfxMessageBox(_T("数据连接测试失败!!")); return ; } } //Error catching catch(_com_error lError) { CString strError = CString((BSTR)lError.Description()); AfxMessageBox(strError); return ; } catch (...) { return ; }//-------------------------- //连接数据库结束-----------------end if(pCommand!=NULL) { ::_RecordsetPtr pRec=NULL; _variant_t vra; VARIANT *vt1 = NULL; try { //pCommand->CommandText = (_bstr_t)_T("insert into accesstable values(1111,'1','111111','1')") ; pCommand->CommandText = (_bstr_t)_T("Select * from accesstable"); pCommand->CommandType = ::adCmdText; pRec = pCommand->Execute(&vra, vt1, ::adCmdText); } catch(_com_error lError) { return ; } catch (...) { return ; } CString dbStrLoginName,dbStrTrueName; if(pRec!=NULL && !pRec->BOF) { CString strTemp; pRec->MoveFirst(); while( !(pRec->AdoEOF) ) { _variant_t vFieldLoginName,vFieldTrueName; try { vFieldLoginName = pRec->GetCollect(_variant_t("ACCESSID")); if(vFieldLoginName.vt!=VT_NULL) vFieldLoginName.ChangeType(VT_BSTR); vFieldTrueName = pRec->GetCollect(_variant_t("ACCTYPE")); if(vFieldTrueName.vt!=VT_NULL) vFieldTrueName.ChangeType(VT_BSTR); } //Error catching catch(_com_error lError) { return ; } catch (...) { return ; } dbStrLoginName = vFieldLoginName.bstrVal; dbStrTrueName = vFieldTrueName.bstrVal; AfxMessageBox(dbStrLoginName); //SetDlgItemText(IDC_EDIT3,dbStrTrueName); pRec->MoveNext(); } pRec->Close(); } pCommand = NULL; } else { return ; } } void CadoTestDlg::OnBnClickedCancel() { OnCancel(); } void CadoTestDlg::OnBnClickedButton1() { // TODO: Add your control notification handler code here // TODO: Add your control notification handler code here //CString strSelectSQL; //strSelectSQL = _T("delete from accesstable where ACCESSID = '1111'"); //m_pOracleDb->Execute(strSelectSQL); }
相关文章推荐
- PowerDesigner概述(系统分析与建模)以及如何用PowerDesigner快速的创建出这个数据库
- MySQL用户、[表库字段]权限、管理及查询缓存详解
- MySQL数据类型
- 使用MySQL的jdbcutils配置多个数据源
- SQLite使用总结(C#版 潘鹏)
- MySQL Study之--MySQL InnoDB存储引擎的参数详解及优化
- Oracle存储过程基本语法介绍
- postgresql
- 我也来写:数据库访问类DBHelper(转)
- SQL server数据库连接问题汇总
- asp控制xml数据库的经典代码
- Redis的三种启动方式
- [MySQL FAQ]系列 — 从MyISAM转到InnoDB需要注意什么
- Redis数据过期策略探究
- MySQL之—checking for termcap functions library... configure: error: No curses/termcap library found解决
- MySQL常见的存储引擎讲解
- 获取mysql 所有数据类型列表
- [MySQL FAQ]系列 — MySQL无法启动例一
- java连接Mongodb3.0 用户认证
- SQL语句介绍(3)