📄 adosql.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 + -