Funciones con los queries basicos de la aplicacion
Funciones
Text SqlLitNam(Text ctrCod, Text domCod, Text anyCod)Text SqlResAnd(Text ctrCod, Text prgCod, Text gruCod, Text curCod, Text prfCod, Text asiCod, Text preCod)Set SqlResLst(Text ctrCod, Text prgCod, Text gruCod, Text curCod, Text prfCod, Text asiCod, Text preCod)//////////////////////////////////////////////////////////////////////////////
Text SqlLitNam(Text ctrCod, // Control, periodo en el que se realiza
Text domCod, // Dominio
Text anyCod) // Codigo de para localizar el nombre
//////////////////////////////////////////////////////////////////////////////
{
Text sqlTxt = "
select Etiqueta
from Literal
where
Control = '"+ctrCod+"' and "+
" Dominio = '"+domCod+"' and "+
" Codigo = '"+anyCod+"'; ";
Set sqlSet = DBTable(sqlTxt);
If(EQ(Card(sqlSet),1), sqlSet[1][1], "ERROR") // Solo puede haber 1
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el nombre de algo dado un periodo, su dominio y su codigo.",
SqlLitNam);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text SqlResAnd(Text ctrCod, // Control, periodo
Text prgCod, // Codigo de programa (opcional)
Text gruCod, // Codigo de grupo (opcional)
Text curCod, // Codigo de curso (opcional)
Text prfCod, // Codigo del profesor (opcional)
Text asiCod, // Codigo de la asignatura (opcional)
Text preCod) // Codigo de pregunta
//////////////////////////////////////////////////////////////////////////////
{
Text ctrQry = If(ctrCod=="", "", "Control = '"+ctrCod+"'");
Text prgQry = If(prgCod=="", "", "Programa = '"+prgCod+"'");
Text gruQry = If(gruCod=="", "", "Grupo = '"+gruCod+"'");
Text curQry = If(curCod=="", "", "Curso = '"+curCod+"'");
Text prfQry = If(prfCod=="", "", "Profesor = '"+prfCod+"'");
Text asiQry = If(asiCod=="", "", "Asignatura = '"+asiCod+"'");
Text preQry = If(preCod=="", "", "Pregunta = '"+preCod+"'");
Set wheSet = [[ctrQry, prgQry, gruQry, curQry, prfQry, asiQry, preQry]];
Set wheSel = Select(wheSet, Real(Text txtQry) { txtQry != "" });
Set2Txt(wheSel, "", "", " and ", " and ", "", "", "", "")
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una serie de condiciones Sql para la tabla Respuestas enlazadas con
el operador and.
Aquellos argumentos de entrada cuyo valor sea nulo no apareceran en la
serie de condiciones.",
SqlResAnd);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Set SqlResLst(Text ctrCod, // Control, periodo
Text prgCod, // Codigo de programa (opcional)
Text gruCod, // Codigo de grupo (opcional)
Text curCod, // Codigo de curso (opcional)
Text prfCod, // Codigo del profesor (opcional)
Text asiCod, // Codigo de la asignatura (opcional)
Text preCod) // Codigo de pregunta
//////////////////////////////////////////////////////////////////////////////
{
Text wheQry = SqlResAnd(ctrCod,prgCod,gruCod,curCod,prfCod,asiCod,preCod);
Text sqlTxt = "
select CInt(Respuesta)
from Respuesta
where
Respuesta >= '1' and
Respuesta <= '5' and
" + wheQry + ";";
//Text WriteLn(sqlTxt);
Set sqlSet = DBTable(sqlTxt);
If(Card(sqlSet), Traspose(sqlSet)[1], Empty)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna la lista de respuestas que cumplen unas determinadas condiciones de
control, programa, grupo, curso, profesor, asignatura y pregunta.
Aquellos campos para los que su codigo sea nulo quedan libres en el query.
El campo Respuesta es de texto pues se admite la respuesta ?,
pero en este querie el campo Respuesta se convierte a entero CInt().",
SqlResLst);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FILE : sql.tol
// AUTHOR : http://www.asolver.com
// PURPOSE : Funciones con los queries basicos de la aplicacion
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text SqlLitNam(Text ctrCod, // Control, periodo en el que se realiza
Text domCod, // Dominio
Text anyCod) // Codigo de para localizar el nombre
//////////////////////////////////////////////////////////////////////////////
{
Text sqlTxt = "
select Etiqueta
from Literal
where
Control = '"+ctrCod+"' and "+
" Dominio = '"+domCod+"' and "+
" Codigo = '"+anyCod+"'; ";
Set sqlSet = DBTable(sqlTxt);
If(EQ(Card(sqlSet),1), sqlSet[1][1], "ERROR") // Solo puede haber 1
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el nombre de algo dado un periodo, su dominio y su codigo.",
SqlLitNam);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Text SqlResAnd(Text ctrCod, // Control, periodo
Text prgCod, // Codigo de programa (opcional)
Text gruCod, // Codigo de grupo (opcional)
Text curCod, // Codigo de curso (opcional)
Text prfCod, // Codigo del profesor (opcional)
Text asiCod, // Codigo de la asignatura (opcional)
Text preCod) // Codigo de pregunta
//////////////////////////////////////////////////////////////////////////////
{
Text ctrQry = If(ctrCod=="", "", "Control = '"+ctrCod+"'");
Text prgQry = If(prgCod=="", "", "Programa = '"+prgCod+"'");
Text gruQry = If(gruCod=="", "", "Grupo = '"+gruCod+"'");
Text curQry = If(curCod=="", "", "Curso = '"+curCod+"'");
Text prfQry = If(prfCod=="", "", "Profesor = '"+prfCod+"'");
Text asiQry = If(asiCod=="", "", "Asignatura = '"+asiCod+"'");
Text preQry = If(preCod=="", "", "Pregunta = '"+preCod+"'");
Set wheSet = [[ctrQry, prgQry, gruQry, curQry, prfQry, asiQry, preQry]];
Set wheSel = Select(wheSet, Real(Text txtQry) { txtQry != "" });
Set2Txt(wheSel, "", "", " and ", " and ", "", "", "", "")
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una serie de condiciones Sql para la tabla Respuestas enlazadas con
el operador and.
Aquellos argumentos de entrada cuyo valor sea nulo no apareceran en la
serie de condiciones.",
SqlResAnd);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Set SqlResLst(Text ctrCod, // Control, periodo
Text prgCod, // Codigo de programa (opcional)
Text gruCod, // Codigo de grupo (opcional)
Text curCod, // Codigo de curso (opcional)
Text prfCod, // Codigo del profesor (opcional)
Text asiCod, // Codigo de la asignatura (opcional)
Text preCod) // Codigo de pregunta
//////////////////////////////////////////////////////////////////////////////
{
Text wheQry = SqlResAnd(ctrCod,prgCod,gruCod,curCod,prfCod,asiCod,preCod);
Text sqlTxt = "
select CInt(Respuesta)
from Respuesta
where
Respuesta >= '1' and
Respuesta <= '5' and
" + wheQry + ";";
//Text WriteLn(sqlTxt);
Set sqlSet = DBTable(sqlTxt);
If(Card(sqlSet), Traspose(sqlSet)[1], Empty)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna la lista de respuestas que cumplen unas determinadas condiciones de
control, programa, grupo, curso, profesor, asignatura y pregunta.
Aquellos campos para los que su codigo sea nulo quedan libres en el query.
El campo Respuesta es de texto pues se admite la respuesta ?,
pero en este querie el campo Respuesta se convierte a entero CInt().",
SqlResLst);
//////////////////////////////////////////////////////////////////////////////
SHi.SyntaxHighlight funciones de sintaxis realzada de codigo
2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio