📄 cquery.cpp
字号:
#include "cquery.h"
/*********************************************
*函数名:CQUERY
*功能:构造函数
*参数说明:(type 0 BDE type 1 ADO ,databasename是要连接的数据库的名字(ADO模式ODBC别名),username是连接数据库的用户名(BDE模式可以不添),passwd是连接数据库的用户密码(BDE模式可以不添))
*返回值:无
*最后作者:张大伟
*********************************************/
CQUERY::CQUERY(int type,char*databasename,char*username,char*passwd)
{
if(type==0)
{
TQuery*tmpquery=new TQuery(NULL);
char tmpdbname[100];
memset(tmpdbname,0x00,100);
strcpy(tmpdbname,databasename);
tmpquery->DatabaseName=tmpdbname;
Query=tmpquery;
CType=0;
}
/*else if(type==1)
{
TADOQuery *tmpquery=new TADOQuery(NULL);
char str[500];
memset(str,0x00,500);
strcpy(str,"Provider=MSDASQL.1;Password=");
strcat(str,passwd);
strcat(str,";Persist Security Info=True;User ID=");
strcat(str,username);
strcat(str,";Data Source=");
strcat(str,databasename);
tmpquery->ConnectionString=str;
Query=tmpquery;
CType=1;
}//*/
}//*/
/*********************************************
*函数名:~CQUERY
*功能:析构函数
*参数说明:
*返回值:无
*最后作者:张大伟
*********************************************/
CQUERY::~CQUERY()
{
if(CType==0)
{
((TQuery*)Query)->Close();
}
else if(CType==1)
{
((TADOQuery*)Query)->Close();
}
delete Query;
Query=NULL;
}
/*********************************************
*函数名:First
*功能:将操作器指到返回记录的第一条
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::First()
{
try{
if(CType==0)
{
((TQuery*)Query)->First();
}
else if(CType==1)
{
((TADOQuery*)Query)->First();
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:Prior
*功能:将操作器指到返回记录的前一条
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Prior()
{
try{
if(CType==0)
{
((TQuery*)Query)->Prior();
}
else if(CType==1)
{
((TADOQuery*)Query)->Prior();
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:Next
*功能:将操作器指到返回记录的后一条
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Next()
{
try{
if(CType==0)
{
((TQuery*)Query)->Next();
}
else if(CType==1)
{
((TADOQuery*)Query)->Next();
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:Last
*功能:将操作器指到返回记录的最后一条
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Last()
{
try{
if(CType==0)
{
((TQuery*)Query)->Last();
}
else if(CType==1)
{
((TADOQuery*)Query)->Last();
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:Eof
*功能:标志是否到了操作器的最后
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Eof()
{
if(CType==0)
{
return ((TQuery*)Query)->Eof;
}
else if(CType==1)
{
return ((TADOQuery*)Query)->Eof;
}
return false;
}
/*********************************************
*函数名:Bof
*功能:标志是否到了操作器的最前
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Bof()
{
if(CType==0)
{
return ((TQuery*)Query)->Eof;
}
else if(CType==1)
{
return ((TADOQuery*)Query)->Eof;
}
return false;
}
/*********************************************
*函数名:FieldByName
*功能:根据字段名返回当前记录的值
*参数说明:字段名称
*返回值:当前操作器当前记录的指定字段的值
*最后作者:张大伟
*********************************************/
char *CQUERY::FieldByName(char*fieldname)
{
char tmp[MAX_FIELD_LEN];
memset(tmp,0x00,MAX_FIELD_LEN);
try{
if(CType==0)
{
strcpy(tmp,((TQuery*)Query)->FieldByName(fieldname)->AsString.c_str());
return tmp;
}
else if(CType==1)
{
strcpy(tmp,((TQuery*)Query)->FieldByName(fieldname)->AsString.c_str());
return tmp;
}
}catch(...)
{
return "";
}
return "";
}
/*********************************************
*函数名:FieldByNumber
*功能:根据字段序号返回当前记录的值
*参数说明:字段号
*返回值:当前操作器当前记录的指定字段的值
*最后作者:张大伟
*********************************************/
char *CQUERY::FieldByNumber(int ifield)
{
char tmp[MAX_FIELD_LEN];
memset(tmp,0x00,MAX_FIELD_LEN);
try{
if(CType==0)
{
strcpy(tmp,((TQuery*)Query)->Fields->FieldByNumber(ifield)->AsString.c_str());
return tmp;
}
else if(CType==1)
{
strcpy(tmp,((TQuery*)Query)->Fields->FieldByNumber(ifield)->AsString.c_str());
return tmp;
}
}catch(...)
{
return "";
}
return "";
}
/*********************************************
*函数名:RecordCount
*功能:查询到的记录总数
*参数说明:
*返回值:当前查询操作器的返回总记录
*最后作者:张大伟
*********************************************/
int CQUERY::RecordCount()
{
if(CType==0)
{
return ((TQuery*)Query)->RecordCount;
}
else if(CType==1)
{
return ((TADOQuery*)Query)->RecordCount;
}
return -1;
}
/*********************************************
*函数名:SetQuerySql
*功能:设置要当前的SQL查询语句
*参数说明:要设置的SQL值
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::SetQuerySql(char * Sql)
{
try{
if(CType==0)
{
((TQuery*)Query)->SQL->Clear();
((TQuery*)Query)->SQL->Add(Sql);
}
else if(CType==1)
{
((TADOQuery*)Query)->SQL->Clear();
((TADOQuery*)Query)->SQL->Add(Sql);
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:GetQuerySql
*功能:获取当前的SQL查询语句
*参数说明:
*返回值:当前的SQL值
*最后作者:张大伟
*********************************************/
char* CQUERY::GetQuerySql()
{
try{
AnsiString sql;
if(CType==0)
{
sql=((TQuery*)Query)->SQL->Strings[0];
}
else if(CType==1)
{
sql=((TADOQuery*)Query)->SQL->Strings[0];
}
return sql.c_str();
}catch(...)
{
return "";
}
}
/*********************************************
*函数名:ExecSQL
*功能:执行一条SQL语句
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::ExecSQL(char*sql)
{
try{
if(CType==0)
{
((TQuery*)Query)->Close();
((TQuery*)Query)->SQL->Clear();
((TQuery*)Query)->SQL->Add(sql);
((TQuery*)Query)->ExecSQL();
((TQuery*)Query)->Close();//*/
}
else if(CType==1)
{
((TADOQuery*)Query)->Close();
((TADOQuery*)Query)->SQL->Clear();
((TADOQuery*)Query)->SQL->Add(sql);
((TADOQuery*)Query)->ExecSQL();
((TADOQuery*)Query)->Close();
}
}catch(...)
{
return false;
}//*/
return true;
}
/*********************************************
*函数名:Open
*功能:根据SQL打开操作器
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Open()
{
try{
if(CType==0)
{
((TQuery*)Query)->Open();
}
else if(CType==1)
{
((TADOQuery*)Query)->Open();
}
}catch(...)
{
return false;
}
return true;
}
/*********************************************
*函数名:Close
*功能:关闭操作器
*参数说明:
*返回值:成功或不成功
*最后作者:张大伟
*********************************************/
bool CQUERY::Close()
{
try{
if(CType==0)
{
((TQuery*)Query)->Close();
}
else if(CType==1)
{
((TADOQuery*)Query)->Close();
}
}catch(...)
{
return false;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -