1.insert
CRdbOp rdbop(CRdbOp::Direct);
CSql* pSql = rdbop.createSQL();
if ( !pSql )
return FALSE;
int ret;
pSql->setOperate( CSql::OP_Insert );
pSql->setTableName( "scu_user" );
pSql->insertField("name",(char *)(user));
pSql->insertField("pwd",password);
if(desc != NULL) pSql->insertField("descr",(char *)(desc));
if(groupno >= 0) pSql->insertField("grpno",groupno);
if(job >= 0) pSql->insertField("job",job);
ret = rdbop.exec( *pSql);
return ( ret > 0 )?TRUE:FALSE;
CRdbOp类
Re: CRdbOp类
2.update
CRdbOp rdbop(CRdbOp::Direct);
CSql* pSql = rdbop.createSQL();
if ( !pSql )
return FALSE;
int ret;
pSql->setOperate( CSql::OP_Update );
pSql->setTableName( "scu_user" );
pSql->updateField("pwd",password);
if(desc != NULL) pSql->updateField("descr",(char *)(desc));
if(groupno >= 0) pSql->updateField("grpno",groupno);
if(job >= 0) pSql->updateField("job",job);
pSql->whereField("name",(char *)user,CSql::CP_Equal);
ret = rdbop.exec( *pSql);
return ( ret > 0 )?TRUE:FALSE;
CRdbOp rdbop(CRdbOp::Direct);
CSql* pSql = rdbop.createSQL();
if ( !pSql )
return FALSE;
int ret;
pSql->setOperate( CSql::OP_Update );
pSql->setTableName( "scu_user" );
pSql->updateField("pwd",password);
if(desc != NULL) pSql->updateField("descr",(char *)(desc));
if(groupno >= 0) pSql->updateField("grpno",groupno);
if(job >= 0) pSql->updateField("job",job);
pSql->whereField("name",(char *)user,CSql::CP_Equal);
ret = rdbop.exec( *pSql);
return ( ret > 0 )?TRUE:FALSE;
Re: CRdbOp类
3.delete
CRdbOp rdbop(CRdbOp::Direct);
CDataset ds;
char sql[\512];
int ret;
sprintf(sql,"delete from scu_user where name=\'%s\'",user);
ret = rdbop.exec(sql);
return (ret>0)?TRUE:FALSE;
CRdbOp rdbop(CRdbOp::Direct);
CDataset ds;
char sql[\512];
int ret;
sprintf(sql,"delete from scu_user where name=\'%s\'",user);
ret = rdbop.exec(sql);
return (ret>0)?TRUE:FALSE;
Re: CRdbOp类
4.select
CRdbOp rdbop(CRdbOp::Direct);
char password[PASSWORD_LEN];
char sql【512】;
if( CreatePassWord(passwd,password) == FALSE) return FALSE;
sprintf(sql,"select pwd from scu_user where name=\'%s\'",user);
CDataset ds;
int ret = rdbop.exec(sql,ds);
if (ret <0)
{
return FALSE;
}
if (ds.rowSize()!= 1)
return FALSE;
if( strcmp(password,ds.field( 0,"pwd").value().toString().c_str() ) == 0) return TRUE;
return FALSE;
CRdbOp rdbop(CRdbOp::Direct);
char password[PASSWORD_LEN];
char sql【512】;
if( CreatePassWord(passwd,password) == FALSE) return FALSE;
sprintf(sql,"select pwd from scu_user where name=\'%s\'",user);
CDataset ds;
int ret = rdbop.exec(sql,ds);
if (ret <0)
{
return FALSE;
}
if (ds.rowSize()!= 1)
return FALSE;
if( strcmp(password,ds.field( 0,"pwd").value().toString().c_str() ) == 0) return TRUE;
return FALSE;
Re: CRdbOp类
CDataset ds
ds.rowSize()//记录个数
ds.field(0,"active").value().toInt32() == FALSE//前提FALSE==0
ds.rowSize()//记录个数
ds.field(0,"active").value().toInt32() == FALSE//前提FALSE==0
Re: CRdbOp类
不需要CDataset:delete,insert,update
需要CDataset:select,
需要CDataset:select,
Re: CRdbOp类
主键判断:
CRdbOp rdbop(CRdbOp::Direct);
CFieldInfo fi;
QString s("dbserverinfo");
bool b = rdbop.tableInfo(s.ascii(),ds.tableInfo());
if (! b)
{
QMessageBox::information(0,"tip","error");
}
fi = ds.fieldInfo("id");
if (fi.isPrimaryKey())
{
QMessageBox::information(0,"tip","yes");
}
else
{
QMessageBox::information(0,"tip","no");
}
CRdbOp rdbop(CRdbOp::Direct);
CFieldInfo fi;
QString s("dbserverinfo");
bool b = rdbop.tableInfo(s.ascii(),ds.tableInfo());
if (! b)
{
QMessageBox::information(0,"tip","error");
}
fi = ds.fieldInfo("id");
if (fi.isPrimaryKey())
{
QMessageBox::information(0,"tip","yes");
}
else
{
QMessageBox::information(0,"tip","no");
}
Re: CRdbOp类
判断主键, 不过这种方法不行,还不知道为什么
CRdbOp rdbop(CRdbOp::Direct);
CTableInfo ti;
if (! rdbop.tableInfo("dbserverinfo",ti) )
{
QMessageBox::information(0,"tip","0");
}
CFieldInfo fi = ti.fieldInfo("id");
if (fi.isPrimaryKey())
{
QMessageBox::information(0,"tip","yes");
}
else
{
QMessageBox::information(0,"tip","no");
}
CRdbOp rdbop(CRdbOp::Direct);
CTableInfo ti;
if (! rdbop.tableInfo("dbserverinfo",ti) )
{
QMessageBox::information(0,"tip","0");
}
CFieldInfo fi = ti.fieldInfo("id");
if (fi.isPrimaryKey())
{
QMessageBox::information(0,"tip","yes");
}
else
{
QMessageBox::information(0,"tip","no");
}
Re: CRdbOp类
select
CRdbOp rdbop(CRdbOp::Direct);
CSql *psql = rdbop.createSQL();
psql->selectField(m_MTblRef[index].m_index_data)
CDataset ds;
psql->setOperate(CSql::OP_Select);
psql->selectDistinct(true);
char tmp];
memset(tmp,0,512);
strcpy(tmp,m_MTblRef[index].m_index_tbl);
psql->setTableName(tmp);
rdbop.exec( *psql,ds);
CRdbOp rdbop(CRdbOp::Direct);
CSql *psql = rdbop.createSQL();
psql->selectField(m_MTblRef[index].m_index_data)
CDataset ds;
psql->setOperate(CSql::OP_Select);
psql->selectDistinct(true);
char tmp];
memset(tmp,0,512);
strcpy(tmp,m_MTblRef[index].m_index_tbl);
psql->setTableName(tmp);
rdbop.exec( *psql,ds);