Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从NodeJs-sqlserver执行file.sql_Javascript_Sql_Node.js_Sql Server - Fatal编程技术网

Javascript 从NodeJs-sqlserver执行file.sql

Javascript 从NodeJs-sqlserver执行file.sql,javascript,sql,node.js,sql-server,Javascript,Sql,Node.js,Sql Server,SQL文件 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SP_NotasEstudiantesMateria_G]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[SP_NotasEstudiantesMateria_G] AS' END

SQL文件

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SP_NotasEstudiantesMateria_G]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[SP_NotasEstudiantesMateria_G] AS' 
END
GO
-- =============================================
-- Author:      Arlington
-- Create date: 04-11-2018
-- Description: Trae las notas de los estudiantes de determinado curso en determinado año y de determinada materia
-- =============================================
-- Author:      Arlington
-- Create date: 16-06-2019
-- Description: Se agrega logica para manejar las ausencias
-- =============================================
-- Author:      Arlington
-- Create date: 19-06-2019
-- Description: Se quita join con la tabla adinasistencias
-- =============================================
-- Author:      Arlington
-- Create date: 19-06-2019
-- Description: test sdf kjsdfk ndskgn fskdnkn
-- =============================================
ALTER PROCEDURE [dbo].[SP_NotasEstudiantesMateria_G]

    @pIdAñoLectivo INT,
    @pIdCurso INT,
    @pIdMateria INT,
    @pIdMaestro BIGINT      

AS
BEGIN

    DECLARE 
    @IdAñoLectivo INT = @pIdAñoLectivo, 
    @IdCurso INT = @pIdCurso,
    @IdMaestro INT = @pIdMaestro,
    @IdMateria BIGINT = @pIdMateria

    SET NOCOUNT ON;

        SELECT MC.Sec AS SecMatCurso, ET.IdTercero, CONCAT(ET.Papellido,' ',ET.Sapellido,' ',ET.Pnombre,' ',ET.Snombre) AS NombreComp 
        , MR.Sec AS IdMateria, MR.NomMateria, MT.Sec AS IdMatricula, P1, 
        (SELECT CantInasistencias 
        FROM ADInasistencia 
        WHERE IdEstudiante = ET.IdTercero 
        AND IdCurso = @IdCurso
        AND IdMateria = @IdMateria
        AND IdPeriodo = 1) AS IAP1, P2, (SELECT CantInasistencias 
        FROM ADInasistencia 
        WHERE IdEstudiante = ET.IdTercero 
        AND IdCurso = @IdCurso
        AND IdMateria = @IdMateria
        AND IdPeriodo = 2) IAP2, P3, (SELECT CantInasistencias 
        FROM ADInasistencia 
        WHERE IdEstudiante = ET.IdTercero
        AND IdCurso = @IdCurso
        AND IdMateria = @IdMateria
        AND IdPeriodo = 3)IAP3, P4, (SELECT CantInasistencias 
        FROM ADInasistencia 
        WHERE IdEstudiante = ET.IdTercero 
        AND IdCurso = @IdCurso
        AND IdMateria = @IdMateria
        AND IdPeriodo = 4)IAP4,  ((P1 + P2 + P3 + P4) / 4) AS Prom   
        FROM ADTerceros ET 
        INNER JOIN ADMatriculas MT ON ET.IdTercero = MT.IdEstudiante AND MT.IdAñoLectivo = @IdAñoLectivo
        INNER JOIN ADCursos CS ON MT.IdCurso = CS.Sec
        INNER JOIN ADMateriasCursos MC ON CS.Sec = MC.IdCurso
        INNER JOIN ADMaterias MR ON MC.IdMateria = MR.Sec
        LEFT JOIN ADNotas NT ON MC.Sec = NT.SecMatCurso AND NT.IdEstudiante = ET.IdTercero AND NT.IdMatricula = MT.Sec
        WHERE CS.Sec = @IdCurso AND MR.Sec = @IdMateria AND MC.IdMaestro = @IdMaestro AND MT.Cancelada = 0 ORDER BY NombreComp
END
错误响应

代码JS

const sql = require('mssql');
var text = fs.readFileSync("./testsql.sql", "utf-8");

sql.connect(config, function (err) {
    if (err) console.log(err);
    const request = new sql.Request()
    request.batch(text, (err, result) => {
        return res.status(200).json({
            result: (err)? err: result
        });
    })
});

尽管有点模糊(请以文本形式发布文本响应),但错误很明显:声明该变量。您是从自身角度声明它的吗?我想知道这是否就是您试图运行的SQL,因为在SQL
@IdCurso
中,似乎声明正确。好的,脚本是一样的,如果我直接在数据库引擎中运行它,它工作得很好,想法是运行一个.SQL文档列表。尽管有些模糊(请以文本形式发布文本回复)错误很明显:声明那个变量。你是用它本身来声明的吗?我想知道这是否就是你正在尝试运行的SQL,因为在SQL
@IdCurso
中,似乎正确声明了。好吧,脚本是一样的,如果我直接在数据库引擎中运行它,它工作正常,想法是运行一个.sql文档。