自己看别人看了没用,UNICODE下连接数据库

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Sayesan/article/details/48371443
// 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);
}

展开阅读全文

大家帮忙看看了。。。。。

02-02

101. which one is true? rn A.An anonymous class can be declared as static. rn B.A static inner class cannot be a static member of the outer class. rn C.A static inner class does require an instance of the enclosing class. rn D.Instance member of a static inner class can be referened using the class name of the static inner class.rnrnanswer:crn102.public class MyCircle rn public double radius; rn public double diameter; rn public void setRadius(double radious) rn 6) this.radius=radius; rn 7) this.diameter=radius*2; rnpublic double getRadius() rnreturn radius; rn rn A. The MyCircle class is fullly encapsulated rn B. The diameter of a given MyCircle is guaranteed to be twice its radius. rn C. Line 6 and 7 should be in a Synchronized block to ensure encapsulation. rn D. The radius of a MyCircle object can be set without affecting its diameter. rnanswer: drnrnrn程序段2: rn1.Object sobj = new Object ( ) ; rn2. sobj = null ; rn3. sobj = new Object ( ) ; rn4.sobj = new Object ( ) ; rn问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准? rn答:第1行和第3行。因为第2行为sobj赋值为null,所以在此第1行的sobj符合垃圾收集器的收集标准。而第4行相当于为sobj赋值为null,所以在此第3行的sobj也符合垃圾收集器的收集标准。 rn如果有一个对象的句柄a,且你把a作为某个构造器的参数,即 new Constructor ( a )的时候,即使你给a赋值为null,a也不符合垃圾收集器的收集标准。直到由上面构造器构造的新对象被赋空值时,a才可以被垃圾收集器收集。 rn程序段3: rn1.Object aobj = new Object ( ) ; rn2.Object bobj = new Object ( ) ; rn3.Object cobj = new Object ( ) ; rn4.aobj = bobj; rn5.aobj = cobj; rn6.cobj = null; rn7.aobj = null; rn问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准? rn答:第7行。注意这类题型是认证考试中可能遇到的最难题型了。 rn行1-3分别创建了Object类的三个对象:aobj,bobj,cobj rn行4:此时对象aobj的句柄指向bobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。 rn行5:此时对象aobj的句柄指向cobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。 rn行6:此时仍没有任何一个对象符合垃圾收集器的收集标准。 rn行7:对象cobj符合了垃圾收集器的收集标准,因为cobj的句柄指向单一的地址空间。在第6行的时候,cobj已经被赋值为null,但由cobj同时还指向了aobj(第5行),所以此时cobj并不符合垃圾收集器的收集标准。而在第7行,aobj所指向的地址空间也被赋予了空值null,这就说明了,由cobj所指向的地址空间已经被完全地赋予了空值。所以此时cobj最终符合了垃圾收集器的收集标准。 但对于aobj和bobj,仍然无法判断其是否符合收集标准。 rnrnrn 论坛

各位帮忙看看了

05-18

各位帮忙看看了? rn小弟菜鸟买了本asp.netOA办公自动化书老出问题,问题我copy下了帮我看看 rnrnrn———————————————————————— rn用户 'sa' 登录失败。 rn说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 rnrn异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。 rnrn源错误: rnrn执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 rnrn堆栈跟踪: rnrnrn[SqlException: 用户 'sa' 登录失败。] rn System.Data.SqlClient.ConnectionPool.GetConnection(Boolean& isInTransaction) +484 rn System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction) +372 rn System.Data.SqlClient.SqlConnection.Open() +384 rn qminoa.DA.EmpDB.Login(String loginid, String password) in F:\ggf\MyBooks\ASP.NET办公自动化系统\配套光盘\源代码(解决方案)\qminoa\DA\sysSecurity\EmpDB.cs:38 rn qminoa.Webs.login.btnlogin_Click(Object sender, EventArgs e) in F:\ggf\MyBooks\ASP.NET办公自动化系统\配套光盘\源代码(解决方案)\qminoa\Webs\login.aspx.cs:42 rn System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108 rn System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57 rn System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18 rn System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 rn System.Web.UI.Page.ProcessRequestMain() +1277 rnrn rn有哪位也有着本书的帮我想象解决办法。 rn 论坛

没有更多推荐了,返回首页