[기계실 재구성] 조합 조회 - 저장 과정
조합 조회에서 저장 프로세스를 사용했는데 오류가 무더기로 발생했습니다.젊은이들의 도움과 고된 조정 시험을 거쳐 마침내 잘못을 바로잡았다.
디버깅이 끝난 후의 저장 과정은 다음과 같다. (주 프로그램이 호출되기 전에 파라미터의 초기 값을 제거하고 프로그램에서 얻으며 테스트를 편리하게 하기 위해 이렇게 한다)
USE [RoomCharge]
GO
/****** Object: StoredProcedure [dbo].[PROC_CombinedQuery] Script Date: 11/13/2015 19:40:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date: 2015-11-10
-- Description: , ,
-- =============================================
ALTER PROCEDURE [dbo].[PROC_CombinedQuery]
-- Add the parameters for the stored procedure here
@DbName nvarchar(50)='stuOnlineRecord_Info',
@cboFileName1 nvarchar(20)='StudentName',
@cboOperator1 nvarchar(10)='=',
@txtContent1 nvarchar(20)='1',
@cboRelation1 nvarchar(10) = '',
@cboFileName2 nvarchar(20)='CardNo',
@cboOperator2 nvarchar(10)='=',
@txtContent2 nvarchar(20)='1',
@cboRelation2 nvarchar(10)='and',
@cboFileName3 nvarchar(20)='StudentNo',
@cboOperator3 nvarchar(10)='=',
@txtContent3 nvarchar(20)='1'
AS
declare @TempSql varchar(500)-- sql
--CHAR(32) ,CHAR(39)
begin
--
set @TempSql ='select * from ' +@DbName+' where'+char(32)+
@cboFileName1+@cboOperator1 +char(39)+@txtContent1 +char(39)
if(@cboRelation1 != null)
begin
--
set @TempSql =@TempSql +char(32) +@cboRelation1 +char(32)+@cboFileName2 +@cboOperator2 +char(39)+@txtContent2 +char(39)if(@cboRelation2 != null)
begin
--
set @TempSql =@TempSql +char(32)+@cboRelation2+char(32)+@cboFileName3 +@cboOperator3 +char(39)+@txtContent3 +char(39)endendexecute (@Tempsql) --
end
这次主要遇到这么几个错误:
1、存储过程中SQL语句的小标点,万万大意不得。
正确写法:
@TempSql='select * from ' +@DbName+' where'+char(32)+@cboFileName1+@cboOperator1+char(39)+@txtContent1 +char(39)
注意:from右边和where左边均有一个空格,必不可少。
错误写法:
@TempSql='select * from'+char(39)+@DbName+char(39)+'where'+char(32)+@cboFileName1+@cboOperator1 +char(39)+@txtContent1 +char(39)
注意:在单引号的句子中的单引号外不可以再用char(32)等ascii码。而应该向正确写法一样用单引号里边的空格。当然单引号内部不可以用ascii过程中SQL语句的小标点码。
2、存储过程中空值Null
Isnot Null(is null) VS !=null(=null)
is null:用来确定表达式是否为Null
=null:用来确认参数是否为Null
-- : @cboRelation1=''--(1) null @cboRelation1=null --(2) null @cboRelation1 is not null --(3) -- if(@cboRelation1 is not null) -- (1) , (2) 。( ) if(@cboRelation1 != null) -- (1)(2) 。( )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
트리 - 중간 순서와 앞 순서, 중간 순서와 뒤 순서로 두 갈래 트리 재구성제목: 두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하고 이 두 갈래 나무를 재건하십시오. 입력에 중복된 숫자가 없다고 가정하십시오. 예를 들어 앞 순서 반복 시퀀스 {1,2,4,7,3,5,6,8}와 중간 순서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.