⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insertdlg.cpp

📁 价格生成系统 热水器生产厂家价格管理、设备类型管理系统
💻 CPP
字号:
// InsertDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Yornik1.h"
#include "InsertDlg.h"
#include"ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CInsertDlg dialog
//#include "ADOConn.h"
extern CYornik1App theApp;
extern _ConnectionPtr m_pConnection;
CInsertDlg::CInsertDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CInsertDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CInsertDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CInsertDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CInsertDlg)
	DDX_Control(pDX, IDC_COMBO1, m_sel);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CInsertDlg, CDialog)
	//{{AFX_MSG_MAP(CInsertDlg)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInsertDlg message handlers

void CInsertDlg::OnButton1() 
{
 CFile f;
	  CString  FilePathName,FilePathName1;
	  CFileException e;
	//  	ADOConn m_AdoConn;
//	m_AdoConn.OnInitADOConn();
	//	_bstr_t vSQL;
//VARIANT name;
      CFileDialog dlg(TRUE,NULL,NULL,0,"图形 Files (*.bmp)|*.bmp||",this);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
      if(dlg.DoModal()==IDOK)
      {FilePathName=dlg.GetPathName();
       FilePathName1=dlg.GetFileTitle();
	if(m_Pic.m_IPicture != NULL) 
		m_Pic.FreePictureData(); // Important - Avoid Leaks...

	if(f.Open(FilePathName, CFile::modeRead | CFile::typeBinary, &e)) //打开了一个jpg文件
{	

		int nSize = f.GetLength();          //先得到jpg文件长度
		BYTE * pBuffer = new BYTE [nSize];  //按文件的大小在堆上申请一块内存
	 
		if (f.Read(pBuffer, nSize) > 0 )    //把jpg文件读到pBuffer(堆上申请一块内存)
		{   // +----------------------------------------------
						BYTE *pBuf = pBuffer;     ///下面这一大段是把pBuffer里的jpg数据放到库中
						VARIANT			varBLOB;
						SAFEARRAY		*psa;
					    SAFEARRAYBOUND	rgsabound[1];
				//name=COleVariant(FilePathName);
					//	m_pRecordset->AddNew();  
					//	m_pRecordset->PutCollect("id", _variant_t(FilePathName));	
						if(pBuf)
							{    
							rgsabound[0].lLbound = 0;
							rgsabound[0].cElements = nSize;
							psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
							for (long i = 0; i < (long)nSize; i++)
							SafeArrayPutElement (psa, &i, pBuf++);
							varBLOB.vt = VT_ARRAY | VT_UI1;
							varBLOB.parray = psa;
							CString image;
							image=(LPCTSTR)(_bstr_t)varBLOB;
							 vSQL = "INSERT INTO 图象(id,j) VALUES('" + FilePathName1 + "','" + image + "')";

                            m_AdoConn.ExecuteSQL(vSQL);
						//	m_pRecordset->GetFields()->GetItem("j")->AppendChunk(varBLOB);
							}
					//	m_pRecordset->Update();
						
			// +----------------------------------------------


			(m_Pic.LoadPictureData(pBuffer, nSize));//接作调用函数读pBuffer的jpg数据准备显示
			delete [] pBuffer;     //删掉堆上申请的那一块内存
			pBuf=0;                //以防二次乱用
		}
		f.Close();
	
	

}
 
	//	CClientDC dc(this);        
	//	m_Pic.UpdateSizeOnDC(&dc); // Get Picture Dimentions In Pixels
	//	m_Pic.Show(&dc, CRect(200,0,200+m_Pic.m_Width,m_Pic.m_Height) );//显示出来看看	
		
	  }	
}

BOOL CInsertDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_AdoConn.OnInitADOConn();
	vSQL="SELECT * FROM 图象";
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
while(!m_pRecordset->adoEOF)
	{m_sel.AddString((LPCSTR)(_bstr_t)m_pRecordset->GetCollect("id"));
	m_pRecordset->MoveNext();
}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CInsertDlg::OnSelchangeCombo1() 
{
/*	CString str;
//	 	ADOConn m_AdoConn;
//	m_AdoConn.OnInitADOConn();
//		_bstr_t vSQL;

CString sFileName;
//_bstr_t a;
	int index=m_sel.GetCurSel();
m_sel.GetLBText(index,str);
//m_pCommand.CreateInstance(__uuidof(Command));

//m_pCommand->ActiveConnection=m_pConnection;  // 将库连接赋于它
vSQL="SELECT * FROM 图象 WHERE id='"+str+"'";
//m_pCommand->CommandText = a;  // SQL语句

m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

//(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("型号")

try
	{//sFileName=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("id");
		long nSize = m_pRecordset->GetFields()->GetItem("j")->ActualSize;
		if(nSize > 0)
		{_variant_t	varBLOB;
			varBLOB =m_pRecordset->GetFields()->GetItem("j")->GetChunk(nSize);
			m_pRecordset->GetFields()->GetItem("j")->GetChunk()
			//varB LOB = m_pRecordset->GetCollect("j");
			if(varBLOB.vt == (VT_ARRAY | VT_UI1))
			{
				if(BYTE *pBuffer = new BYTE [nSize+1])		///重新申请必要的存储空间
				{	
					char *pBuf = NULL;
					SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
					memcpy(pBuffer,pBuf,nSize);				///复制数据到缓冲区m_pBMPBuffer
					SafeArrayUnaccessData (varBLOB.parray);
				//	int nSize = lDataSize;
					(m_Pic.LoadPictureData(pBuffer, nSize));

					 delete [] pBuffer;
					 pBuf=0;

					 ///生成BITMAP对象
					 CClientDC dc(this);
					 m_Pic.UpdateSizeOnDC(&dc); // Get Picture Dimentions In Pixels
					 m_Pic.Show(&dc, CRect(0,100,m_Pic.m_Width,100+m_Pic.m_Height) );
CFileDialog dlg(FALSE, "bmp", sFileName,OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY, "图象文件(*.bmp)|*.bmp||", this);
  dlg.m_ofn.lpstrTitle = _T("保存bmp文件");
  if (dlg.DoModal() == IDOK)
  {
   // 实现存盘
   CString fileName = dlg.GetPathName();
   CFile file(fileName, CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive);
   CArchive ar(&file, CArchive::store|CArchive::bNoFlushOnDelete);
sFileName=dlg.GetPathName();
   m_Pic.SaveAsBitmap(sFileName);
  UpdateData(false);
   ar.Close();
  }

				}
			}
		}
	}
	catch (_com_error e) {
	}
	*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -