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

📄 adosql.cpp

📁 用Visual C++实现关系数据库的图形编程.
💻 CPP
字号:
// ADOSQL.cpp: implementation of the ADOSQL class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SDB.h"
#include "ADOSQL.h"
#include "ADOConn.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOSQL::ADOSQL()
{
  num=0;
  id=0;
}

ADOSQL::~ADOSQL()
{

}

void ADOSQL::InsertPoint(CPoint point,int flag)         //插入点
{
  CString Sql;

  char sx[20],sy[20],t[20];
	itoa(point.x,sx,10);               // int型转换为string
	itoa(point.y,sy,10);
	itoa(flag,t,10);
	Sql = "INSERT INTO Point (X,Y,Type) VALUES(";    //+p_x+",'"+p_y+"')";
	Sql += sx;
	Sql += ",";
	Sql += sy;
	Sql += ",";
	Sql += t;
	Sql += ")";

	m_ado.ExecuteSQL((_bstr_t)Sql);
	
	_bstr_t Sql1;
	Sql1="SELECT ID from Point ";
	m_Recond=m_ado.GetRecordSet(Sql1);

//	_variant_t varValue;
    m_Recond->MoveLast();
	maxNO=m_Recond->GetFields()->GetItem("ID")->Value;


}

void ADOSQL::InsertPointEntity(int m_n, COLORREF drag)  //插入点元
{	
/*	_bstr_t Sql;
	Sql="SELECT ID from Point ";
	m_Recond=m_ado.GetRecordSet(Sql);

//	_variant_t varValue;
    m_Recond->MoveLast();
	m_Recond->GetFields()->GetItem("ID")->Value;
*/		
    char s1[20],s2[20];
	itoa(m_n,s1,10);               // int型转换为string
	itoa(drag,s2,10);

	CString sql;
    sql="INSERT INTO PointEntity (PNum,Type,Color) VALUES (";
	sql+=(LPCTSTR)(_bstr_t)maxNO;
	sql += ",";
	sql+=s1;
	sql += ",";
	sql+=s2;
	sql += ")";	
	m_ado.ExecuteSQL((_bstr_t)sql);

}

void ADOSQL::InsertIineEntity(int type, COLORREF color)  //插入线元
{
	char s1[20],s2[20],s3[20];
	CString sql;
	CString mm=(LPCTSTR)(_bstr_t)maxNO;
	int m=atoi(mm);            //将string型转换为int型,得到最大序号
	
	if(type==5)         //直线
	{
		m=m-1;
	}
	if(type==6)          //圆线
	{
		m=m-1;
	}
	if(type==7)          //矩形
	{
		m=m-1;
	}
	itoa(m,s1,10);               // int型转换为string
	itoa(color,s2,10);               // int型转换为string
	itoa(type,s3,10);

    sql="INSERT INTO Line (pBNO,pENO,Color,Type) VALUES (";
	sql+=s1;
	sql += ",";
	sql+=mm;
	sql += ",";
	sql+=s2;
	sql += ",";
	sql+=s3;
	sql += ")";	
	m_ado.ExecuteSQL((_bstr_t)sql);
}

void ADOSQL::DelPointEntity(int i, int j)   //删除点元
{//i,j分别表示点的坐标,
    char s1[20],s2[20];
	itoa(i,s1,10);               // int型转换为string
	itoa(j,s2,10);

	CString Sql;
	Sql="DELETE FROM Point WHERE X=";
	Sql+=s1;
	Sql+=" and ";
	Sql+="Y=";
	Sql+=s2;	
	m_ado.ExecuteSQL((_bstr_t)Sql);
}

void ADOSQL::EditPointEntity(int x, int y,int x1,int y1 ,int color) //编辑点元
{
   //x,y,x1,y1分别表示更新前的和更新后的点的坐标,color为颜色
    char s1[20],s2[20],s3[20],s4[20]; 
	// int型转换为string
	itoa(x,s1,10);            //  
	itoa(y,s2,10);
	itoa(x1,s3,10);              
	itoa(y1,s4,10);
	CString Sql,sSql;
	sSql="SELECT ID from Point WHERE X=";
	sSql+=s1;	
	sSql+=" and ";
	sSql+="Y=";
	sSql+=s2;

    _variant_t varValue;
    varValue=m_ado.GetRecordSet((_bstr_t)sSql)->GetFields()->GetItem("ID")->Value;
	

	Sql="UPDATE Point SET  X=";
	Sql+=s3;
	Sql+=" and ";
	Sql+="Y=";
	Sql+=s4;
	Sql+=" WHERE ID=";
	Sql+=(LPCTSTR)(_bstr_t)varValue;
	//	Sql+=")";	
	m_ado.ExecuteSQL((_bstr_t)Sql);
}

int ADOSQL::CheckPoint(int x, int y)         //判断点是否被选中
{
	char s1[20],s2[20]; 
	// int型转换为string
	itoa(x,s1,10);            //  
	itoa(y,s2,10);
	
	CString sSql;
	_variant_t varValue;
	   
	sSql="SELECT ID from Point WHERE X=";
	sSql+=s1;	
	sSql+=" and ";
	sSql+="Y=";
	sSql+=s2;
    m_Recond=m_ado.GetRecordSet((_bstr_t)sSql);
    while(m_Recond->adoEOF==0) 
	{
		varValue=m_Recond->GetFields()->GetItem("ID")->Value;
		id=atoi((LPCTSTR)(_bstr_t)varValue);
			
		m_Recond->MoveNext();

	}	
/*	CString sql;
	sql="SELECT * FROM PointEntity WHERE PNum=";
	sql+=s;
	m_Rst=m_ado.GetRecordSet((_bstr_t)sql);
	while(m_Rst->adoEOF==0) 
	{
		CString xx((LPCTSTR)(_bstr_t)m_Rst->GetCollect("Type"));
		//	varValue=m_Recond->GetFields()->GetItem("ID")->Value;
							 x1=atoi(xx);				
							 m_Rst->MoveNext();
	}	*/
		return id;	   
}

void ADOSQL::DelClass(int type)
{
	CString Sql;
	char s1[20];
	itoa(type,s1,10);               // int型转换为string
	//	itoa(j,s2,10);
	if(type>0&&type<4)
	{
		Sql="DELETE FROM Point WHERE Type=";
		Sql+=s1;
		m_ado.ExecuteSQL((_bstr_t)Sql);
	}
	if(type>4&&type<10)
	{
		Sql="DELETE FROM Point WHERE Type=";
		Sql+=s1;
		m_ado.ExecuteSQL((_bstr_t)Sql);
	}
}

⌨️ 快捷键说明

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